QWidget派生类对象作为子窗口(父窗口设置了样式)背景为透明问题

在项目中,我们经常需要自定义一个继承Qwidget派生类的类,当这个类的对象为独立窗口时,一点问题都没有。当我们作为子窗口时,qt会自动将子窗口的背景设置为透明(其他控件均显示),同时这个子窗口的setStyleSheet方法是无效的。有时候我们并不想这样做。于是需要重写paintEvent函数,并设置setBrush画刷,drawRect一个矩形来显示背景。但当软件中有换肤功能时,我们必须在切换皮肤时换颜色。这时候就显得非常的麻烦。

QWidget派生类对象作为子窗口(父窗口设置了样式)背景为透明问题

QWidget派生类对象作为子窗口(父窗口设置了样式)背景为透明问题

如何达到这个效果有三种方法:

第一种,在生成该界面之后,再调用一次

如:

第二种是重写PaintEvent函数

第三种是(推荐):该方式的结果是,如果父窗口设置了qss,就用父类的。如果自己设置了Qss就用自己的

 

来源:留点头发。

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年9月6日
下一篇 2019年9月6日

相关推荐