徹底查看禁用的QGroupBox標題(請參閱附加圖像)。禁用QGroupBox標題陰影(又名蝕刻)
你會發現下標題的字母一塊白色的1個像素的陰影。
它在默認樣式表上幾乎沒有引人注目,但如果您設置了深色背景和文本顏色,它可能會更煩人。
我該怎麼做才能禁用這個陰影,或者至少改變它的顏色?
徹底查看禁用的QGroupBox標題(請參閱附加圖像)。禁用QGroupBox標題陰影(又名蝕刻)
你會發現下標題的字母一塊白色的1個像素的陰影。
它在默認樣式表上幾乎沒有引人注目,但如果您設置了深色背景和文本顏色,它可能會更煩人。
我該怎麼做才能禁用這個陰影,或者至少改變它的顏色?
您正在使用什麼風格?它看起來像'基本'Windows風格。如果你想擺脫文字陰影,你可以實現你自己的風格,並改變爲禁用的組合框繪製文本的方式。詳細瞭解QStyle
以及如何創建自定義樣式here。這個鏈接是針對Qt 5.1的,但Qt 4的原理也是一樣的。
更簡單的方法是簡單地更改QGroupBox
對象的調色板。將顏色組QPalette::Disabled
和顏色角色QPalette::Light
標識的顏色更改爲alpha通道設置爲0的任何顏色,例如, QColor(0, 0, 0, 0)
。這將有效地禁用文字陰影。但是,它也會禁用線條的陰影,所以它可能不是你想要的。
我已經找到了解決辦法:
不幸的是,你不能刪除禁用文本陰影(又名蝕刻),但你可以用骯髒的解決辦法改變它的顏色:
它看起來像陰影效果總是從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);
這不適合我...看起來不錯。同樣的答案,但沒有工作,任何顏色,都不起作用。我在想...也許問題在於它是一個自定義小部件。我會檢查一下。 – darkgaze
你說我可以實現我自己的風格去除蝕刻沒有這種顏色的伎倆?如何完成? – Vasily
是的。我更新了我的答案,並提供了QStyle類文檔的鏈接。它有一個關於如何創建自定義樣式的部分。 –
沒有爲我工作。我改變顏色,但沒有工作。 – darkgaze