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

时间:2017-09-27 20:57:15

标签: c++ qt qtstylesheets qstylesheet qpalette

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

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

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

1 个答案:

答案 0 :(得分:0)

您无法直接访问样式表的各个属性。您可以做的是检索样式表,然后您需要解析它并找到您要查找的属性(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);