У меня есть приложение Qt, которое, среди многих других типов виджетов, использует QTabWidget. У меня возникли трудности с настройкой цвета фона для этого объекта.
Я пробовал некоторые из следующих строк, которые я нашел в других сообщениях на форуме, в моей таблице стилей без влияния на программу
QTabWidget { background-color: black; }
QTabWidget::pane { background-color: black; }
QTabWidget#tabWidget { background-color: black; }
QTabWidget#tabWidget::pane { background-color: black; }
Если я использую QWidget { background-color: black; }
, тогда да, мой цвет должным образом изменился, но затем изменились и все остальные виджеты в моей программе … так что это не то, что я ищу …
Я также попробовал это в коде с ui->tabWidget->setStyleSheet("background-color: black");
Но это также нежелательно, потому что оно меняет цвет фона всех своих дочерних виджетов.
У кого-нибудь есть какие-либо идеи о том, как стилизовать фоновую область содержимого QTabWidgets?
Приблизительно на год позже, но я недавно столкнулся с той же проблемой и заставил ее работать.
Прежде всего, QTabWidget имеет дочерний QWidget для каждой вкладки, которую вы делаете. Это область, в которую вы помещаете другие виджеты, и именно это вы хотите установить цвет фона.
Установите таблицу стилей, выполнив это.
1) Определите имя виджетов вкладок в правом верхнем углу окна объекта дизайна, они должны совпадать с именем currentTabName, которое вы указали при создании вкладки.
2) Поймите, что это QWidget, а не QTabWidget, поэтому QTabWidget { background-color: black; }
не работает.
3) Поймите, что, указав объект в таблице стилей с помощью «#», дочерний объект не будет наследовать таблицу стилей.
Для себя я определил свою таблицу стилей как таковую, повторяя для каждого имени объекта вкладки:
#objectName {background-color: rgb(240,240,240);}
Это дало мне точное поведение, которое мне было нужно. В моем случае я хотел получить естественный серый фон на вкладках, но не переопределять дочерние компоненты на вкладках.
Я надеюсь, что это поможет кому-то в будущем …
Других решений пока нет …