嵌入式开发,QT QLabel或者QPushButton在禁用的时候文字重影

richer1015 2018-05-11 09:47:38
嵌入式开发,QT QLabel或者QPushButton在禁用的时候,上面的文字重影,是使用了setStysheet去设置禁用背景的.
QPushButton:!enabled{ background-color:rgb(220,220,220);color:rgb(255,255,255)}.
如何才能取消这个重影呢,很不好看,windows下不会有,放到板子上就有,很蛋碎,,,求各位大神解救
...全文
2196 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37518975 2021-07-31
  • 打赏
  • 举报
回复

QMenu windows就有

richer1015 2018-05-14
  • 打赏
  • 举报
回复
引用 1 楼 feiyangqingyun 的回复:
默认好像是有那个效果,这个是系统本身的效果!
大佬,这个默认效果如何去掉呢
richer1015 2018-05-14
  • 打赏
  • 举报
回复
看源码,估计是开启了SH_EtchDisabledText属性,
richer1015 2018-05-14
  • 打赏
  • 举报
回复
经过尝试,发现在禁用态时启用了Light,我这边重写了ProxyStyle::drawItemText,然后把QPalette::Light的颜色设置为透明,解决了现状问题 void MyProxyStyle::drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole /* = QPalette::NoRole */) const { //去掉禁用态字体重影 QPalette palLight(pal); palLight.setColor(QPalette::Light, QColor(255, 255, 255, 0)); QProxyStyle::drawItemText(painter, rect, flags, palLight, enabled, text, textRole); } //然后设置程序style 通过QApplication setStyle(new MyProxyStyle)。 对于菜鸟的我,看来要去好好看看ProxyStyle
feiyangqingyun 2018-05-12
  • 打赏
  • 举报
回复
默认好像是有那个效果,这个是系统本身的效果!

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧