【轉載】Qt設定全域性的widget的stylesheet
阿新 • • 發佈:2019-01-03
https://www.xuebuyuan.com/282345.html
Qt設定全域性的widget的stylesheet
最近widget都是有焦點和無焦點兩種情況,這時我們只需要它在有焦點時改變樣式,無焦點時不變。
這時候可以通過qApp->setStyleSheet設定全域性所有可能用到的widget的樣式。
如
1 a.setStyleSheet("QPushButton:focus{border: 3px solid red}");
就可以設定按鈕被聚焦時,外邊畫出一個紅框。
但是這裡注意:不能使用兩行qApp->setStyleSheet來設定樣式,這樣下面的一次呼叫會覆蓋掉上面的一次呼叫。
如
1 a.setStyleSheet("QPushButton:focus{border: 3px solid red}"); 2 a.setStyleSheet("QLineEdit:focus{border: 3px solid red}");
這樣上面第一行的QPushButton的樣式設定就不會生效。
可以採用
1 a.setStyleSheet("QPushButton:focus{border: 3px solid red} QLineEdit:focus{border: 3px solid red}");
這樣兩個widget都會生效。
另外,對於QComboBox,如果需要在被聚焦時和彈出選單時都繪製紅框,則使用如
1 a.setStyleSheet("QComboBox QAbstractItemView{border: 3px solid red} QComboBox:focus{border