我有一个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 :(得分:2)
大约一年后,但我最近遇到了同样的问题,并使其正常工作。
首先,QTabWidget为您创建的每个选项卡都有一个子QWidget。这是您将其他小部件放入的区域,这是您要设置其背景颜色的区域。
执行此操作以设置样式表。
1)从右上角的设计对象窗口中确定选项卡小部件的名称,它们应与您在创建选项卡时设置的currentTabName匹配。
2)意识到这是一个QWidget而不是QTabWidget,这就是QTabWidget { background-color: black; }
不起作用的原因。
3)意识到,通过在样式表中使用“#”指定对象,子对象将不会继承样式表。
对我来说,我是这样指定样式表的,对我拥有的每个选项卡对象名称重复以下操作:
#objectName {background-color: rgb(240,240,240);}
这为我提供了所需的确切行为。就我而言,我想将自然的灰色背景带到“选项卡”页面上,但不覆盖选项卡页面上的子组件。
我希望这对以后的人有所帮助...