2015-04-29 109 views
0

我已經嘗試過樣式表,html格式和調色板,將單選按鈕的顏色更改爲白色,但它們不起作用。更改Qt中的單選按鈕文本顏色

有沒有辦法改變它?在QRadioButton的文檔中沒有文字顏色的功能。

回答

1

聽起來很奇怪。無論用QtCreator和QtDesigner的QRadioButton的stylesheet屬性設置爲

color: white; background-color: red; 

給你一個QRadioButton有白色文字,紅色背景 (如果我沒有理解這個問題)

+0

我已經嘗試過很多次了,文字的顏色沒有改變。 – irukeru

+0

你可以發佈一個代碼示例(如果你正在嘗試做這個代碼)你想要什麼? – Gianluca

+0

我已經重新安裝了qt編譯器,並解決了問題:/它太傻了,我不知道爲什麼會發生:( – irukeru

0

您將需要繼承QProxyStyle並重新實現drawControl()方法以QStyle::CE_RadioButton來接電話。

如果你看看源QRadioButton::paintEvent()

QStylePainter p(this); 
QStyleOptionButton opt; 
initStyleOption(&opt); 
p.drawControl(QStyle::CE_RadioButton, opt); 

initStyleOption()沒有做任何事情,但設置狀態數據;一切都由畫家處理。這裏的QStylePainter::drawControl(),它只是調用當前將QStyle做的工作:

void QStylePainter::drawControl(QStyle::ControlElement ce, const QStyleOption &opt) 
{ 
    wstyle->drawControl(ce, &opt, this, widget); 
} 

Qt的文檔包括如何繼承並加載代理樣式信息:http://doc.qt.io/qt-5/qproxystyle.html。查看QCommonStyle::drawControl()實現,瞭解Qt如何繪製控件。

0

如果您只想更改單選按鈕的前景色,則可能需要爲該按鈕提供alpha背景色。例如:

QRadioButton{ color: rgb(255, 255, 255); background-color: rgba(255, 255, 255, 0);} 

這會給你透明背景的白色。