天天看点

Qt QDialog 设置圆角

对于普通的控件,我们通过样式表(css)设置圆角就比较简单

border-radius:5px
           

但是这个方法对于QDialog并没有作用。经过仔细研究发现了。原来QDialog只是一个容器,对于已经设置无边框(Qt::FramelessWindowHint)的对话框,直接设置border-radius并没有作用。

那怎么办呢?

我们可以在QDialog里放置一个QFrame控件,所有的布局都在QFrame控件里设置。然后设置QFrame控件的圆角就ok了

1.结构应该就是这样子的。

Qt QDialog 设置圆角

2.设置frame的样式表

QFrame
{
	background-color:#ffffff;

	border:none;
	border-radius:10px;
}
           

3.设置QDialog对话框的属性:在dialog对话框的构造函数设置对话框背景透明

setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);
    setAttribute(Qt::WA_TranslucentBackground);
           
Qt QDialog 设置圆角

demo下载地址:https://download.csdn.net/download/xiezhongyuan07/10322255

没有积分的小伙伴,评论留下你的邮箱,看到后第一时间免费发送源码

继续阅读