我们在使用QDialog的时候许多场景下都不需要默认的标题栏,这时候我们需要设置他的标志位。
this->setWindowFlags(Qt::FramelessWindowHint);
由于现代的窗口风格,我们一般会设置窗口为圆角边框的样式,我们可以使用qss的方式来进行设置。
QDialog{border-radius:30;background-color:rgb(204,204,204);border:1px soild gray;
}
这时候我们可以看到圆角是没有生效的(这是在windows11下,windows10下是有圆角的,但是还是有背景色)。
这时候我们可以将背景色设置为透明的。
//设置透明this->setAttribute(Qt::WA_TranslucentBackground, true);
但是这时候我们的窗口都不见了,因为背景色是透明色。
解决方法:我们可以使用另外一个widget覆盖在QDialog窗口上,但是这个widget也需要设置圆角和背景色。
这时候我们可以发现实现了无边框圆角窗口。