使用PaintEvent之后setStyleSheet不生效的解决办法

发现 继承自QWidget的自定义类 ,使用setStyleSheet无效,

如果删除头文件中的 Q_OBJECT,setStyleSheet生效,

但不用OBJECT 就无法所使用signal and slot,

最后找到解决办法,继承自QWidget的自定义类中,重载 paintEvent方法,

并加入如下代码:

QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
QWidget::paintEvent(e);
如果是继承了QPushButton,同理上段代码最后一句改为:

QPushButton::paintEvent(e);



猜你喜欢

转载自blog.csdn.net/zzwdkxx/article/details/78224958