如何在设置 QStyleSheet 后获取 QWidget 背景颜色

How to get QWidget background-color after set a QStyleSheet

我有我的桌面 QApplication (Qt 5.9),我在上面使用样式表成功地设置了样式。在运行时,每个 QWidget 看起来都按预期正确设置了样式。
我需要知道的是特定样式小部件的背景颜色,比方说 QTooltip。

我尝试了 QWidget::palette 方法,但我得到的看起来像是 QPalette::ColorRole 的系统默认颜色 I问。
此外,qt docs 建议在使用样式表时不要使用此方法。

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

您无法直接访问样式的各个属性 sheet。你可以做的是检索样式 sheet 然后你需要解析它并找到你正在寻找的 属性 (some_widget->styleSheet() 会 return 它作为 QString).

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

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

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);