Difference between revisions of "Custom Tab Bar/bg"

From Qt Wiki
Jump to: navigation, search
(Add "cleanup" tag)
(Convert ExpressionEngine links)
Line 7: Line 7:
 
= Промяна на QTabBar =
 
= Промяна на QTabBar =
  
В тази статия се демонстрира как да се създаде клас наследник на "QTabBar":http://doc.qt.io/qt-5.0/qtwidgets/qtabbar.html, който да показва изображенията винаги центрирани (по подразбиране QTabBar подравнява иконите винаги в ляво).
+
В тази статия се демонстрира как да се създаде клас наследник на [http://doc.qt.io/qt-5.0/qtwidgets/qtabbar.html QTabBar], който да показва изображенията винаги центрирани (по подразбиране QTabBar подравнява иконите винаги в ляво).
  
 
Приложеният тук клас показва добавяне само на един таб, но по същият начин могат да бъдат добавени още табове.
 
Приложеният тук клас показва добавяне само на един таб, но по същият начин могат да бъдат добавени още табове.
Line 31: Line 31:
 
</code>
 
</code>
  
Клас, наследник на "QTabWidget":http://doc.qt.nokia.com/latest/qtabwidget.html, който използва създадения таб бар:
+
Клас, наследник на [http://doc.qt.nokia.com/latest/qtabwidget.html QTabWidget], който използва създадения таб бар:
 
<code>
 
<code>
 
#include "MyTabWidget.h"
 
#include "MyTabWidget.h"

Revision as of 08:18, 4 March 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Български English

Промяна на QTabBar

В тази статия се демонстрира как да се създаде клас наследник на QTabBar, който да показва изображенията винаги центрирани (по подразбиране QTabBar подравнява иконите винаги в ляво).

Приложеният тук клас показва добавяне само на един таб, но по същият начин могат да бъдат добавени още табове.

// header file not shown here
#include "MyTabBar.h"
#include <QLabel>

MyTabBar::MyTabBar(QWidget *parent)
 : QTabBar(parent)
{
 this->addTab(QString());

QLabel *lbl;
 lbl = new QLabel();
 lbl->setPixmap(QPixmap(QString::fromUtf8("../../popup/5.png")));
 lbl->setAlignment(Qt::AlignCenter);

// can set a larger size below too, but the icon is always center aligned
 lbl->setFixedSize(16,16);
 this->setTabButton(0, QTabBar::LeftSide, lbl);
}

Клас, наследник на QTabWidget, който използва създадения таб бар:

#include "MyTabWidget.h"
#include "MyTabBar.h"

#include <QDebug>

MyTabWidget::MyTabWidget(QWidget *parent)
 : QTabWidget(parent)
{
 this->setGeometry(QRect(10, 10, 300, 250));

MyTabBar *bar;
 bar = new MyTabBar();
 this->setTabBar(bar);
}

Извикване от mainwindow.cpp както следва:

 MyTabWidget *mytab;
 mytab = new MyTabWidget(centralWidget());