1、问题 :
日常开发中通常不会直接使用Qt默认的Dialog样式,而是需要隐藏默认的标题栏自定义新标题栏。
隐藏标题栏+QSS,将原直角窗口变为圆角窗口。我们会发现对话框显示有问题,窗口四个角上有白边。
CTestDialog::CTestDialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::CTestDialog)
{
ui->setupUi(this);
// 隐藏标题栏
setWindowFlags(Qt::FramelessWindowHint);
}
使用QSS将QDialog背景设置透明,窗口出现黑边。
QDialog
{
background:transparent;
}
2、解决方法:
将对话框窗口设置为透明。
CTestDialog::CTestDialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::CTestDialog)
{
ui->setupUi(this);
// 隐藏标题栏
setWindowFlags(Qt::FramelessWindowHint);
// 背景透明
setAttribute(Qt::WA_TranslucentBackground);
}