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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QToolBox - раскрасить tab`ы в разные цвета.  (Прочитано 7313 раз)
neosapient
Гость
« : Апрель 14, 2010, 12:17 »

Здраствуйте.

Есть QToolBox из семи вкладок/кнопок.
1) Как раскрасить каждую вкладку (саму tab-кнопку) в отдельный цвет радуги ?
Пробовал использовать таблицу стилей, но там не получается задать индивидуальный цвет для каждой tab-кнопки


2) Можно ли вместо tab-кнопки отображать свою картинку (на каждую tab-кнопку свою отдельную картинку) ? Как это сделать ?


« Последнее редактирование: Апрель 14, 2010, 12:36 от neosapient » Записан
alexman
Гость
« Ответ #1 : Апрель 14, 2010, 12:41 »

Открой Designer и "поиграй" со свойством palette для QToolBox. Ну а далее в коде setPalette...
Записан
alexman
Гость
« Ответ #2 : Апрель 14, 2010, 13:31 »

А такое решение не подойдет: при вызове int QToolBox::addItem ( QWidget * widget, const QIcon & iconSet, const QString & text ) устанавливать иконку нужного цвета!
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Апрель 14, 2010, 14:14 »

Эти кнопки в QToolBox-e порождены от QAbstractButton.
Получаем их

Код
C++ (Qt)
QObjectList l( tool_box_widget->children() );
for( QObjectList::iterator it = l.begin(); it != l.end(); ++it )
   if( QAbstractButton* btn = dynamic_cast<  QAbstractButton* >( *it ) )
     ;
 

и делаем с ними что хотим (наверное).
На самом деле сам не пробовал, но по идее должно прокатить.
Записан

Qt 5.11/4.8.7 (X11/Win)
neosapient
Гость
« Ответ #4 : Апрель 14, 2010, 16:41 »

Воспользовался предложеной конструкцией

Код:
	QObjectList l( toolBox->children() );
for( QObjectList::iterator it = l.begin(); it != l.end(); ++it ){
if( QAbstractButton* btn = dynamic_cast<  QAbstractButton* >( *it ) ){
qDebug() << btn->text();
btn->setStyleSheet("background-color: yellow; border-radius: 5px; color: red");
}
}

В результате, кнопки желтые, текст красный. Но закругления кнопок нет.

Есть ещё идеи ?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Апрель 14, 2010, 17:12 »

Про "закругления" изначально вопрос не стоял Улыбающийся
Скорее всего border-radius не получится использовать, т.к. поддержка этого property реализована только для публичных потомков QAbstractButton.
Qt Style Sheets Reference::QToolBox: The individual tabs can by styled using the ::tab subcontrol.
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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