Изменить фон индексированных вкладок 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);
Любая помощь приветствуется. Благодарю.
1 ответ
Отдельные вкладки являются структурами, а не объектами. Эти структуры затем используются для рисования. Смотрите источник Qt для более подробной информации.
У меня был эксперимент с этим, и я не могу найти способ получить прямой индекс, как вы указали. Для справки, я попытался использовать такие свойства, как текст, toolTip, whatsThis, но, к сожалению, не смог получить доступ ни к одному из них из таблиц стилей.
Боюсь, я не думаю, что то, что вы хотите сделать, возможно без подкласса и изменения событий рисования самостоятельно.