qt使用了qstackedwidget里面放置了widget后对该子widget设置的样式无效

关键字:子窗口样式无效 QStackedwidget 

 

问题:

我有一个对话框,里面放了一个qstackedwidget,qstackedwidget放了N个子窗口,使用addwidget添加上去了;

原本我在qtcreator里设置了style,background-color: rgb(9,27,65);但是现实不出来;

 

解决方法-1:----------------------------------不建议用这方法,会一直占用cpu

对该子窗口的类重写paintEvent,主要核心为:

void View7IncV2Menu9Btns::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

 

 

解决方法2

在此子类的构造函数调用如下代码即可:

setAttribute(Qt::WA_StyledBackground,true);

 

 

其他问题:

使用style,子窗口会继承,如果设置背景色,会导致该子对象比如:按钮,label等也会有同样的颜色,如果想子窗口不继承;

那么在设置style的时候就要制定自己的objectname;

 

#View7IncV2Menu9Btns{background-color: rgb(9,27,65);}
posted @ 2020-02-28 07:46  吉瓦吴老师  阅读(4186)  评论(0编辑  收藏  举报