7

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

在此处输入图像描述

编辑。

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

在此处输入图像描述

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

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

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

编辑。

我在带有 Qt 4.8 和 Qt 5.4.2 的 Xubuntu 14.04 上尝试了这段代码。这似乎是 Qt 上的一个错误。请参阅下面我自己的答案。

4

4 回答 4

4

好的,所以我做了一些挖掘,发现了这个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)。不知道为什么我的问题被否决了。

于 2015-07-27T13:31:05.677 回答
2

您可以使用 QTStyleSheet如下:

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

我为工具栏按钮的背景设置第一个颜色参数,为设置工具栏背景的颜色设置第二个颜色参数。

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

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

请查看下图以供参考:

在此处输入图像描述

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

于 2015-07-27T10:37:08.017 回答
1

我正在使用 Ubuntu,而 user256.. 的代码不起作用。但是,我确实尝试了 Samurai Jack 的代码并且它有效。这是您的代码不起作用的地方: !hover 无效。要获取您想要的代码,请执行以下操作:

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

:hover我假设你正在尝试做的 CSS 指令在哪里。我正在 Ubuntu 15.04 上对此进行测试,它可以工作。

于 2015-07-27T11:26:03.447 回答
-1

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

于 2018-12-03T16:54:06.540 回答