Qt 通过QSS设置两个QWidget的叠加
一、目的
有时候,我们想实现在一个QWidget中显示另一个QWidget控件。
效果如下:
蓝色和红色都是QWidget类,一个在里一个里面,并且两个Widget背景颜色都显示。
二、实现
其中,有一种方式就是创建两个QWidget,然后再QSS文件中来操作两个Widget来实现上面的效果。
我们可以通过QSS来实现。
创建两个QWidget
QWidget *MarginWidget;
QWidget *ContentWidget;
MarginWidget= new QWIdget();
MarginWidget->setObjectName("MarginWidget");
ContentWidget = new QWidget(MarginWidget);
ContentWidget->setObjectName("ContentWidget ");
布局实现
QVBoxLayout* marginVLayout = new QVBoxLayout;
contentVLayout->addStretch();
contentVLayout->addWidget( ContentWidget );
contentVLayout->addStretch();
MarginWidget->setLayout( marginVLayout );
通过QSS设置不同QWIdget的大小就可以实现2个Widget叠加的效果
QWidget#MarginWidget{
background-color: rgba(40,134,242,0.3);
min-width:500px;
max-width:500px;
min-height:600px;
max-height:600px;
}
QWidget#ContenWidget{
background-color: rgba(255,255,255,0.6);
min-width:450px;
max-width:450px;
min-height:550px;
max-height:550px;
margin-top:25px;
margin-left:25px;
}
本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。