禁用QGroupBox标题阴影(又称蚀刻)

时间:2013-07-24 18:37:03

标签: qt qt4 qt5 qstyle qgroupbox

彻底查看已禁用的QGroupBox标题(参见附图)。

disabled QGroupBox

你会注意到标题字母下面有一个微小的白色1像素阴影。

在默认样式表中几乎不会引人注意,但如果设置深色背景和文本颜色,则会更加烦人。

如何禁用此阴影,或至少更改其颜色?

2 个答案:

答案 0 :(得分:3)

你使用什么样的风格?它看起来像'基本'Windows风格。如果要删除文本阴影,可以实现自己的样式并更改为禁用的组框绘制文本的方式。详细了解QStyle以及如何创建自定义样式here。该链接适用于Qt 5.1,但Qt 4的原理也是相同的。

更简单的方法是简单地更改QGroupBox对象的调色板。将颜色组QPalette::Disabled和颜色角色QPalette::Light标识的颜色更改为Alpha通道设置为0的任何颜色,例如QColor(0, 0, 0, 0)。这将有效地禁用文本阴影。但是,它也会禁用线条的阴影,因此它可能不是你想要的。

答案 1 :(得分: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