Как установить только таблицу стилей цвета фона QTabWidget

У меня есть приложение 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?

0

Решение

Приблизительно на год позже, но я недавно столкнулся с той же проблемой и заставил ее работать.

Прежде всего, QTabWidget имеет дочерний QWidget для каждой вкладки, которую вы делаете. Это область, в которую вы помещаете другие виджеты, и именно это вы хотите установить цвет фона.

Установите таблицу стилей, выполнив это.

1) Определите имя виджетов вкладок в правом верхнем углу окна объекта дизайна, они должны совпадать с именем currentTabName, которое вы указали при создании вкладки.

2) Поймите, что это QWidget, а не QTabWidget, поэтому QTabWidget { background-color: black; } не работает.

3) Поймите, что, указав объект в таблице стилей с помощью «#», дочерний объект не будет наследовать таблицу стилей.

Для себя я определил свою таблицу стилей как таковую, повторяя для каждого имени объекта вкладки:

#objectName {background-color: rgb(240,240,240);}

Это дало мне точное поведение, которое мне было нужно. В моем случае я хотел получить естественный серый фон на вкладках, но не переопределять дочерние компоненты на вкладках.

Я надеюсь, что это поможет кому-то в будущем …

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]