Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: navrocky от Сентябрь 03, 2012, 16:45



Название: [Решено] Добавление QToolButton в QTabBar
Отправлено: navrocky от Сентябрь 03, 2012, 16:45
Пытаюсь добавить кнопку (QToolButton) в закладку, она добавляется, но при этом выглядит странно:

(http://wstaw.org/m/2012/09/03/plasma-desktopty7768.png)

Однако при этом клик по ней отрабатывает.

Когда вместо QToolButton устанавливаю QPushButton - то кнопка выглядит нормально и визуально нажимается.

Но мне нужна именно QToolButton. В чём может быть проблема?

Во вложении минимальный пример.

Вот его код:
Код
C++ (Qt)
#include <QApplication>
#include <QTabBar>
#include <QWidget>
#include <QVBoxLayout>
#include <QToolButton>
#include <QStyle>
 
int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
 
   QWidget w;
   QVBoxLayout* l = new QVBoxLayout(&w);
   QTabBar* tabs = new QTabBar(&w);
   l->addWidget(tabs);
 
   int i = tabs->addTab("test");
 
   QToolButton* button = new QToolButton(tabs);
 
   QIcon icon = a.style()->standardIcon(QStyle::SP_ComputerIcon);
   button->setIcon(icon);
 
   tabs->setTabButton(i, QTabBar::RightSide, button);
 
   QObject::connect(button, SIGNAL(clicked()), &w, SLOT(close()));
 
   w.show();
   return a.exec();
}
 
 


Название: Re: Добавление QToolButton в QTabBar
Отправлено: GreatSnake от Сентябрь 03, 2012, 18:04
Выстави
Код
C++ (Qt)
button->setAutoRaise( true );


Название: Re: Добавление QToolButton в QTabBar
Отправлено: navrocky от Сентябрь 04, 2012, 15:43
Выстави
Код
C++ (Qt)
button->setAutoRaise( true );
Не помогает.

Я нашёл костыль: достаточно QToolButton посадить в QWidget и этот QWidget засунуть в таб. Всё работает как полагается.

(http://wstaw.org/m/2012/09/04/plasma-desktopOI1944.png)


Название: Re: [Решено] Добавление QToolButton в QTabBar
Отправлено: Dr.Vlad от Сентябрь 05, 2012, 11:46
Вообще-то в QToolBar можно вставить переменную QAction и она будет выглядеть как кнопка.


Название: Re: [Решено] Добавление QToolButton в QTabBar
Отправлено: GreatSnake от Сентябрь 05, 2012, 11:49
2 Dr.Vlad:
чего-то у тебя с вниманием совсем беда :(
Причём здесь QToolBar ???

2 navrocky:
а у тебя случаем никакой CSS не висит на QToolButton?


Название: Re: [Решено] Добавление QToolButton в QTabBar
Отправлено: navrocky от Сентябрь 05, 2012, 15:24
Нет, CSS не висит. Может это конечно стиль глючит... Точно, это oxygen стиль глючит. С остальными стилями всё нормально.

Но в любом случае, найден способ запихнуть в таб более одной кнопки :D