Qt解决继承QWidget后设置样式(QSS)无效的办法
2021-01-21 本文已影响0人
BrokenRainK
方法一
设置属性 this->setAttribute(Qt::WA_StyledBackground);
方法二
改成继承 QFrame,因为 QFrame 自带 paintEvent 函数已做了实现,在使用样式表时会进行解析和绘制。
方法三
重新实现 QWidget 的 paintEvent 函数时,使用 QStylePainter 绘制
void ClassName::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
QSS使用
//MyClass: 继承QWidget后的类名
//ObjectName: 实际使用的ObjectName
MyClass#ObjectName
{
}