2013-07-24 54 views
2

徹底查看禁用的QGroupBox標題(請參閱附加圖像)。禁用QGroupBox標題陰影(又名蝕刻)

disabled QGroupBox

你會發現下標題的字母一塊白色的1個像素的陰影。

它在默認樣式表上幾乎沒有引人注目,但如果您設置了深色背景和文本顏色,它可能會更煩人。

我該怎麼做才能禁用這個陰影,或者至少改變它的顏色?

回答

3

您正在使用什麼風格?它看起來像'基本'Windows風格。如果你想擺脫文字陰影,你可以實現你自己的風格,並改變爲禁用的組合框繪製文本的方式。詳細瞭解QStyle以及如何創建自定義樣式here。這個鏈接是針對Qt 5.1的,但Qt 4的原理也是一樣的。

更簡單的方法是簡單地更改QGroupBox對象的調色板。將顏色組QPalette::Disabled和顏色角色QPalette::Light標識的顏色更改爲alpha通道設置爲0的任何顏色,例如, QColor(0, 0, 0, 0)。這將有效地禁用文字陰影。但是,它也會禁用線條的陰影,所以它可能不是你想要的。

+0

你說我可以實現我自己的風格去除蝕刻沒有這種顏色的伎倆?如何完成? – Vasily

+1

是的。我更新了我的答案,並提供了QStyle類文檔的鏈接。它有一個關於如何創建自定義樣式的部分。 –

+0

沒有爲我工作。我改變顏色,但沒有工作。 – darkgaze

1

我已經找到了解決辦法:

不幸的是,你不能刪除禁用文本陰影(又名蝕刻),但你可以用骯髒的解決辦法改變它的顏色:

它看起來像陰影效果總是從ColorGroup「Disabled」和當前調色板的ColorRole「Light」中獲取其顏色。所以,你只需設置這個顏色爲您的小部件的背景顏色:

QPalette p = myWidget->palette(); 
p.setColor(QPalette::Disabled, QPalette::Light, QColor(0,0,0)); <- place your widget bg color here 
myWidget->setPalette(p); 

I've found this solution here

+0

這不適合我...看起來不錯。同樣的答案,但沒有工作,任何顏色,都不起作用。我在想...也許問題在於它是一個自定義小部件。我會檢查一下。 – darkgaze