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
{

}
上一篇下一篇

猜你喜欢

热点阅读