美文网首页
Qt解决继承QWidget后设置样式(QSS)无效的办法

Qt解决继承QWidget后设置样式(QSS)无效的办法

作者: BrokenRainK | 来源:发表于2021-01-21 10:41 被阅读0次

    方法一

    设置属性  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
    {
    
    }
    

    相关文章

      网友评论

          本文标题:Qt解决继承QWidget后设置样式(QSS)无效的办法

          本文链接:https://www.haomeiwen.com/subject/ufurzktx.html