2011-09-16 116 views
0

我有一個繼承QComboBox的類。我需要爲這個小部件設置紅色邊框。
我不能使用QPalette,我試圖用setStyleSheet:
pComboBox->setStyleSheet("QFrame { border: 2px solid red; }")
它工作正常的QLineEdit的,但對於QComboBox我身邊彈出視圖,而不是組合框紅色邊框。
我怎樣才能訪問QComboBox的框架?QComboBox無法更改邊框顏色

回答

0

好,最簡單的方法,我發現解決這個問題就是要繼承控件我使用和借鑑的paintEvent紅色矩形()。

0

你應該使用QComboBox選擇器,而不是QFrame(或兩者,如果你想要兩個樣式)。

pComboBox->setStyleSheet("QComboBox { border: 2px solid red; } QFrame { border: 2px solid blue; }") 

請參閱StyleSheet examples瞭解更多關於造型的小工具。

+0

這適用於QComboBox,但設置這種風格QComboBox看起來像Win95組合框,而不是XP。而這對我使用的小工具(繼承QComboBox)根本不起作用。即使我使用的類名我的小部件與setStyleSheet :( – Funt

+0

我都試過,我發現,現在我想知道它是否是好主意,添加一個QFrame爲SomeComboBox,並用它來製作紅色邊框的所有方式.... – Funt

+0

只要你設定了組合框的樣式,Qt就不能再使用它的原生操作系統版本了(而且你通過設計風格來打破原生外觀)所以如果你打算弄亂組合框的樣式,你必須自定義漂亮很多整個小部件 – Chris