在设置QStylesHeet之后,如何获得Qwidget背景色

How to get QWidget background-color after set a QStyleSheet

本文关键字:何获得 Qwidget 背景色 设置 QStylesHeet 之后      更新时间:2023-10-16

我有我的桌面qapplication(qt 5.9),我在其上成功使用样式表设置了样式。在运行时,每个Qwidget看起来都按预期正确样式。
我需要知道的是特定风格的小部件的背景色,例如qtooltip。

我尝试了 qwidget :: Palette 方法,但是我看起来像系统的默认颜色 qpalette :: colorrole 我问。
此外,QT文档建议在使用样式表时不使用此方法。

所以...更一般地,如何查询通过样式表定义的小部件属性?

您无法直接访问样式表的各个属性。您可以做的是检索样式表,然后您需要解析并找到您正在寻找的属性(some_widget->styleSheet()将其返回为QString)。

如果您不想这样做,并且想直接访问调色板,则必须使用它而不是样式表来更改颜色。

示例代码如何使用调色板而不是样式表样式:

QPalette px;
px.setColor(QPalette::Text, QColor(255, 255, 255)); // Set text color to white
px.setColor(QPalette::Base, QColor(0, 0, 0)); // Set background to black
some_widget->setPalette(px);