Ily*_*lya 5 windows qt aero background-color dwm
有没有办法改变小部件的背景颜色而不失去它的风格?我的问题在具有Aero主题的Windows 7/Vista和Windows 8上也是可重现的.您可以在Qt Designer中看到它的外观:
这里我们有四个按钮:两个顶级小部件看起来都很好(与该程序的所有其他小部件一样),但两个底部小部件看起来都很旧.这种旧式的唯一原因是设置这些按钮的背景颜色(据我所知,桌面窗口管理器将样式重置为旧的,如果窗口小部件不是标准的).
那么,有没有办法强制桌面窗口管理器绘制没有标准背景颜色的按钮?(Microsoft Office可以做到,但我不确定它是标准功能)
你能推荐用现代(Aero主题)取代按钮标准图的Qt扩展吗?或者你可能知道更标准的方法吗?
我发现只有一种方法可以在不失去样式的情况下改变颜色:将部分透明的小部件放在按钮上方(并使鼠标点击透明).你可以在这里看到结果(我的框架比必要的大 - 它用于演示;我还需要色彩校正来补偿透明度,但这并不重要):
它有效,但我不喜欢这个"解决方案".你有更好的主意吗?
那么,有什么方法可以强制桌面窗口管理器绘制具有非标准背景颜色的按钮吗?(Microsoft Office可以做到,但我不确定这是标准功能)
您可以编写自己的QProxyStyle并使用 WinAPI 函数来绘制具有航空风格和自定义背景颜色的按钮。您可以查看 Qt 源代码来了解它如何用于航空。但这是一项非常复杂的任务。
样式表不适用于任何动画(例如航空中的悬停动画)。
您能推荐用现代(Aero 主题)替换按钮标准绘图的 Qt 扩展吗?或者您可能知道更标准的方法吗?
没有标准的方法。如果您想使用样式表而没有此类不可预测的问题 - 您需要使用“Fusion”样式而不是任何本机样式。“融合”风格是 QSS 定制的良好基础。查看文档
其他机会 - 是使用QtQuick而不是小部件。
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |