【发布时间】:2015-11-12 07:30:58
【问题描述】:
有什么方法可以改变小部件的背景颜色而不会失去它的风格?我的问题在带有 Aero 主题的 Windows 7/Vista 和 Windows 8 上也可以重现。您可以在 Qt Designer 中查看它的外观:
这里我们有四个按钮:两个顶部的小部件看起来都不错(与该程序的所有其他小部件一样),但两个底部的小部件看起来都很旧。这种旧样式的唯一原因是这些按钮的背景颜色设置(据我了解,如果小部件不标准,桌面窗口管理器会将样式重置为旧样式)。
那么,有什么方法可以强制桌面窗口管理器使用非标准背景颜色绘制按钮? (Microsoft Office 可以,但我不确定它是否是标准功能)
您能否推荐 Qt 扩展,它用现代(Aero 主题)替换标准的按钮绘图?或者您可能知道更标准的方法吗?
我发现只有一种方法可以在不丢失样式的情况下更改颜色:将部分透明的小部件放在按钮上方(并使其对鼠标单击透明)。你可以在这里看到结果(我的框架比需要的大 - 用于演示;我还需要颜色校正来补偿透明度,但这并不重要):
它有效,但我不喜欢这种“解决方案”。你有更好的主意吗?
【问题讨论】:
-
不幸的是,Windows doesn't natively support that,所以无论你想出什么解决方案都必须是你自己的。您可以做的最好的事情是在图像/像素图上绘制按钮,然后按照您希望的方式对其进行着色。
标签: windows qt background-color aero dwm