Qt之解决QWidget样式表不起作用的三种方
实战过的都知道,继承QWidget后,在该子类中使用样式表会不起作用,解决的方法有三个,如下所示:
方法1:设置属性
setAttribute(Qt::WA_StyledBackground, true);
方法2:不继承QWidget
比如说,可以改成继承QFrame,因为QFrame自带paintEvent函数已做了实现,在使用样式表时会进行解析和绘制
方法3:重写QWidget的paintEvent函数
void MyWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
很明显,方法一最简洁,值得推荐