Difference between revisions of "Custom Tab Bar/bg"

From Qt Wiki
Jump to: navigation, search
 
Line 1: Line 1:
 +
[[Category:snippets]]
 +
 
'''Български''' [[CustomTabBar|English]]
 
'''Български''' [[CustomTabBar|English]]
  
=Промяна на QTabBar=
+
= Промяна на QTabBar =
 +
 
 +
В тази статия се демонстрира как да се създаде клас наследник на "QTabBar":http://doc.qt.io/qt-5.0/qtwidgets/qtabbar.html, който да показва изображенията винаги центрирани (по подразбиране QTabBar подравнява иконите винаги в ляво).
 +
 
 +
Приложеният тук клас показва добавяне само на един таб, но по същият начин могат да бъдат добавени още табове.<br /><code><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);
  
В тази статия се демонстрира как да се създаде клас наследник на [http://doc.qt.io/qt-5.0/qtwidgets/qtabbar.html QTabBar] ''[qt.io]'', който да показва изображенията винаги центрирани (по подразбиране QTabBar подравнява иконите винаги в ляво).
+
// 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 /></code>
  
Приложеният тук клас показва добавяне само на един таб, но по същият начин могат да бъдат добавени още табове.<br />
+
Клас, наследник на &quot;QTabWidget&amp;quot;:http://doc.qt.nokia.com/latest/qtabwidget.html, който използва създадения таб бар:<br /><code><br />#include &quot;MyTabWidget.h&amp;quot;<br />#include &quot;MyTabBar.h&amp;quot;
  
Клас, наследник на [http://doc.qt.nokia.com/latest/qtabwidget.html QTabWidget] ''[doc.qt.nokia.com]'', който използва създадения таб бар:<br />
+
#include &lt;QDebug&amp;gt;
  
Извикване от '''mainwindow.cpp''' както следва:<br />
+
MyTabWidget::MyTabWidget(QWidget *parent)<br /> : QTabWidget(parent)<br />{<br /> this-&gt;setGeometry(QRect(10, 10, 300, 250));
  
===Categories:===
+
MyTabBar *bar;<br /> bar = new MyTabBar();<br /> this-&gt;setTabBar(bar);<br />}<br /></code>
  
* [[:Category:snippets|snippets]]
+
Извикване от '''mainwindow.cpp''' както следва:<br /><code><br /> MyTabWidget *mytab;<br /> mytab = new MyTabWidget(centralWidget());<br /></code>

Revision as of 06:17, 24 February 2015


Български English

Промяна на QTabBar

В тази статия се демонстрира как да се създаде клас наследник на "QTabBar&quot;: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 />