QToolBar背景颜色仅适用于操作

时间:2015-07-27 09:17:18

标签: c++ qt background-color qtoolbar

我正在尝试使用样式表background : rgb(30, 30, 30)中的以下内容在Qt设计器中设置QToolBar的bacground颜色。由于某种原因,背景颜色仅应用于动作的背景,如图中所示。如何更改整个工具栏的颜色?

enter image description here

编辑。

即使我更改了整个窗口的背景颜色,工具栏的区域也不会受到影响:

enter image description here

这是一个空的默认Qt小部件应用程序,我只在QMainWindow的样式表中添加了QToolBar和一个QAction

background : red;
QToolBar { background : red }
QToolButton {background : red}

这是预期的行为还是qt与linux的错误?

修改。

我在Xtuntu 14.04上使用Qt 4.8和Qt 5.4.2尝试了这个代码。这似乎是Qt的一个错误。请参阅下面的答案。

4 个答案:

答案 0 :(得分:3)

好的,所以我做了一些挖掘并找到了这个https://forum.qt.io/topic/23800/solved-change-background-color-of-qtoolbar-doesn-t-work-in-linux。显然这是某些Linux发行版上的特定问题。在border: none修复问题后添加background : rgb(30, 30, 30)。不知道为什么我的问题被低估了。

答案 1 :(得分:2)

您可以使用QT StyleSheet,如下所示:

ui->mainToolBar->setStyleSheet("QToolButton:!hover {background-color:lightgray} QToolBar {background: rgb(30, 30, 30)}");

我为ToolBar Button的背景设置的第一个颜色参数和第二个用于设置工具栏背景颜色的颜色参数。

如果您只想设置背景颜色,请使用StyleSheet,如下所示:

 ui->mainToolBar->setStyleSheet("QToolBar {background: rgb(30, 30, 30)}");

请查看以下图片以供参考:

enter image description here

我希望你想要工具栏如上图所示。

答案 2 :(得分:0)

我使用Ubuntu和user256 ..代码不起作用。但是,我确实尝试过Samurai Jack的代码并且它有效。这是您的代码不起作用的地方:!悬停不是有效的。要获得所需的代码,请执行以下操作:

ui->mainToolBar->setStyleSheet("QToolButton:hover {background-color: darkgray; }"
                              " QToolBar {background: rgb(30, 30, 30) }");

:hover是一个CSS指令,这是我假设您正在尝试做的事情。我在Ubuntu 15.04上对此进行了测试,但它确实有效。

答案 3 :(得分:-1)

我知道已经存在了,但是我已经遇到了ToolBar背景的问题,发现可以使用QPalette对其进行更改。最主要的是QPalette颜色角色必须设置为QPlatte :: Button。