先上效果图
窗口加上阴影能够使窗口显得更加立体,实现方式也很简单,采用Widget或Dialog嵌套frame的形式实现,具体实现如下。
布局
布局层级
简单解释一下,在widget的内套一个QFrame,然后将所有控件拖拽到QFrame中,对整个QWidget进行布局,预留一定的边距(具体多少根据自己的场景定),然后设置顶层widget背景透明,QFrame背景白色。
#MyWidget
{
background-color:transparent;
}
#frame
{
background-color: rgb(255, 255, 255);
}
最后在构造函数中给QFrame设置阴影即可
//创建阴影
QGraphicsDropShadowEffect * effect = new QGraphicsDropShadowEffect(this);
//设置偏移
effect->setOffset(3);
//设置模糊
effect->setBlurRadius(20);
//设置颜色
effect->setColor(QColor("#444440"));
ui->frame->setGraphicsEffect(effect);