Измените фон индексированных вкладок QTabBar с помощью таблиц стилей
Вопрос
Можно ли, используя таблицы стилей Qt, установить другой цвет фона для каждой вкладки в QTabBar, который имеет 4 или более вкладок?
Мое приложение Qt имеет 6 вкладок под строкой меню.Я хотел бы изменить цвета фона на 6 разных цветов, используя таблицы стилей.
Кажется, на моем пути стоят 2 проблемы:
Я могу стилизовать только «первую», «среднюю» и «последнюю» вкладки, используя чистый синтаксис таблицы стилей (поэтому я говорю «4 или более» вкладок).
Я не думаю, что отдельные вкладки являются дочерними виджетами QTabBar, к которым я могу получить доступ.Идея заключалась в том, что я мог бы затем прикрепить свойство к каждой дочерней вкладке, на которую я мог бы ссылаться в таблице стилей.
Например:
// Stylesheet
QTabBar::tab[index="3"] {
background: blue;
}
// Code
QTabBar* bar = new QTabBar;
int index = bar->addTab("Tab 1");
QWidget* tab1; //= ????
tab1->setProperty("index", index);
Любая помощь приветствуется.Спасибо.
Решение
Отдельные вкладки представляют собой структуры, а не объекты.Эти структуры затем используются при рисовании.См. Исходный код Qt Больше подробностей.
У меня был эксперимент с этим, и я не могу найти способ получить доступ к прямому индексу, как вы указали.Для справки: я пробовал использовать такие свойства, как текст, всплывающая подсказка, WhatsThis, но, к сожалению, не смог получить доступ ни к одному из них из таблиц стилей.
Боюсь, я не думаю, что то, что вы хотите сделать, возможно без создания подклассов и изменения событий рисования самостоятельно.