Qt QDialog 设置圆角
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt QDialog 设置圆角相关的知识,希望对你有一定的参考价值。
对于普通的控件,我们通过样式表(css)设置圆角就比较简单
border-radius:5px
但是这个方法对于QDialog并没有作用。经过仔细研究发现了。原来QDialog只是一个容器,对于已经设置无边框(Qt::FramelessWindowHint)的对话框,直接设置border-radius并没有作用。
那怎么办呢?
我们可以在QDialog里放置一个QFrame控件,所有的布局都在QFrame控件里设置。然后设置QFrame控件的圆角就ok了。
1.结构应该就是这样子的。
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 设置圆角的主要内容,如果未能解决你的问题,请参考以下文章
Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt: