Custom Tab Bar/bg

From Qt Wiki
Revision as of 06:17, 24 February 2015 by Maintenance script (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Български English

Промяна на QTabBar

В тази статия се демонстрира как да се създаде клас наследник на "QTabBar":http://doc.qt.io/qt-5.0/qtwidgets/qtabbar.html, който да показва изображенията винаги центрирани (по подразбиране QTabBar подравнява иконите винаги в ляво).

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

<br />// header file not shown here<br />#include &quot;MyTabBar.h&amp;quot;<br />#include &lt;QLabel&amp;gt;

MyTabBar::MyTabBar(QWidget *parent)<br /> : QTabBar(parent)<br />{<br /> this-&gt;addTab(QString());

QLabel *lbl;<br /> lbl = new QLabel();<br /> lbl-&gt;setPixmap(QPixmap(QString::fromUtf8(&quot;../../popup/5.png&amp;quot;)));<br /> lbl-&gt;setAlignment(Qt::AlignCenter);

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

Клас, наследник на "QTabWidget&quot;:http://doc.qt.nokia.com/latest/qtabwidget.html, който използва създадения таб бар:

<br />#include &quot;MyTabWidget.h&amp;quot;<br />#include &quot;MyTabBar.h&amp;quot;

#include &lt;QDebug&amp;gt;

MyTabWidget::MyTabWidget(QWidget *parent)<br /> : QTabWidget(parent)<br />{<br /> this-&gt;setGeometry(QRect(10, 10, 300, 250));

MyTabBar *bar;<br /> bar = new MyTabBar();<br /> this-&gt;setTabBar(bar);<br />}<br />

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

<br /> MyTabWidget *mytab;<br /> mytab = new MyTabWidget(centralWidget());<br />