Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Custom Tab Bar/bg: Difference between revisions

From Qt Wiki
Jump to navigation Jump to 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());