2017-08-08 116 views
1

如何在一個樣式表中爲一種控件定義多種樣式?所以後來的開發人員可以選擇什麼樣的風格控制應該看起來像。爲按鈕控件定義多種樣式Qt Widgets樣式表

例如,我需要定義兩個樣式QPushButton:正常按鈕(左邊)和動作按鈕(右側)

enter image description here

對於第一個按鈕,我寫了下面的風格:

QPushButton { 
    background-color: #DCDCDC; 
    border: 1px solid #BEBEBE; 
} 
... 

,這將適用於所有QPushButtons項目。接下來我需要爲QPushButtons定義另一個動作樣式,但是應該由開發人員選擇。我怎樣才能做到這一點?

我希望這樣的事情:

QPushButton#ActionButton* { 
    background-color: blue; 
    border: 1px solid darkerblue; 
} 

然後,如果開發人員指定他的按鈕objectName與「ActionButton」(例如「ActionButtonSendRespond」)開始,然後它會使用第二種風格。

回答

2

你也可以繼承QPushButtonActionButton所以你可以寫具體的CSS:

C++

#include <QPushButton> 

class ActionButton : public QPushButton 
{ 
    using QPushButton::QPushButton; 
}; 

CSS:

QPushButton { 
    background-color: #DCDCDC; 
    border: 1px solid #BEBEBE; 
} 
ActionButton { 
    background-color: blue; 
    border: 1px solid darkerblue; 
} 

然後,當開發人員使用一類或其他的,他們知道哪種風格適用。如果您還需要更改子類中的行爲,它會很有用。