我有我的桌面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);