Russian Qt Forum
Ноябрь 24, 2024, 04:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Добавление QToolButton в QTabBar  (Прочитано 4864 раз)
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« : Сентябрь 03, 2012, 16:45 »

Пытаюсь добавить кнопку (QToolButton) в закладку, она добавляется, но при этом выглядит странно:



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

Когда вместо 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();
}
 
 
« Последнее редактирование: Сентябрь 04, 2012, 15:43 от navrocky » Записан

Гугль в помощь
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Сентябрь 03, 2012, 18:04 »

Выстави
Код
C++ (Qt)
button->setAutoRaise( true );
Записан

Qt 5.11/4.8.7 (X11/Win)
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #2 : Сентябрь 04, 2012, 15:43 »

Выстави
Код
C++ (Qt)
button->setAutoRaise( true );
Не помогает.

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

« Последнее редактирование: Сентябрь 04, 2012, 15:47 от navrocky » Записан

Гугль в помощь
Dr.Vlad
Гость
« Ответ #3 : Сентябрь 05, 2012, 11:46 »

Вообще-то в QToolBar можно вставить переменную QAction и она будет выглядеть как кнопка.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Сентябрь 05, 2012, 11:49 »

2 Dr.Vlad:
чего-то у тебя с вниманием совсем беда Грустный
Причём здесь QToolBar Непонимающий

2 navrocky:
а у тебя случаем никакой CSS не висит на QToolButton?
« Последнее редактирование: Сентябрь 05, 2012, 11:51 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #5 : Сентябрь 05, 2012, 15:24 »

Нет, CSS не висит. Может это конечно стиль глючит... Точно, это oxygen стиль глючит. С остальными стилями всё нормально.

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

Гугль в помощь
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 23.