2017-09-27 60 views
1

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

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

因此......更一般地说,如何通过样式表定义一个widget属性查询?

+0

Qt的基于您的QSS QProxyStyle'的'特例。没有办法扭转它。 –

回答

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