2017-09-27 58 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);