Qt中设置窗口边框的圆形
Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口。
下面分别叙述用这两种方式来实现窗口边框圆角的效果。
一、使用setStyleSheet方法
this->setStyleSheet(“QWidget{background-color:gray;border-top-left-radius:15px;border-top-right-radius:5px;}”));
使用的主要是使用border-radius 属性,关于这个属性,可选的样式有
border-top-left-radius 设置左上角圆角;
border-top-right-radius 设置右上角圆角;
border-bottom-left-radius 设置左下角圆角;
border-bottom-right-radius 设置右下角圆角;
border-radius 设置四个角圆角;
关于border-radius 后面的参数
(1)一个参数
border-radius:15px
(2)两个参数
border-radius: 15px 50px
第一个参数设置X轴方向的半径
第二个参数设置Y轴方向的半径
从图中可以看出设置一个参数代表X轴和Y轴设置了同样的值,而两个参数分别为X轴和Y轴方向的半径。大家可以根据不同需要去设置参数。
二、在paintEvent事件中绘制窗口边框
这里我们需要重写paintEvent方法,具体代码如下:
void paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing); // 反锯齿;painter.setBrush(QBrush(Qt::red));painter.setPen(Qt::transparent);QRect rect = this->rect();rect.setWidth(rect.width() - 1);rect.setHeight(rect.height() - 1);painter.drawRoundedRect(rect, 15, 15);//也可用QPainterPath 绘制代替 painter.drawRoundedRect(rect, 15, 15);{QPainterPath painterPath;painterPath.addRoundedRect(rect, 15, 15);p.drawPath(painterPath);}QWidget::paintEvent(event);
}
效果如下:
如果不写painter.setRenderHint(QPainter::Antialiasing);则圆角会出现锯齿,如下图。
仔细对比上图可以看见圆角曲线有锯齿状。
注意:
(1)在使用这两种方法的时候需要设置窗口的属性。this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明this->setWindowFlags(Qt::FramelessWindowHint); //设置无边框窗口(2)主窗体加载不了样式时需要在paintEvent事件中加上如下代码。
{QStyleOption opt;opt.init(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);QWidget::paintEvent(event);
}
设置按钮的背景边框
原始图
设置无边框或者背景透明可以去掉白色方框
给按钮设置如下样式即可。
{background-color:transparent;}
或者
{border:none;}
Qt中设置窗口边框的圆形相关推荐
- Qt 之 设置窗口边框的圆角
Qt技术学习班开始了,更多精彩.好玩的内容等着你,赶紧报名吧! 群号:655815739 Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述 ...
- qt中设置窗口左上角的图标
前面一节已经详细的讲解了怎么添加图片到qt的图片资源文件中,这里就不赘述了,不太了解的可以看看博主的这篇随笔:qt中建立图片资源管理文件 this->setWindowIcon(QIcon(&q ...
- QT中关于窗口全屏显示与退出全屏的实现
近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示 ...
- 在Word2007文档中设置页面边框
用户可以在Word2007文档中设置普通的线型页面边框和各种图标样式的艺术型页面边框,使Word2007文档更富有表现力.在Word2007文档中设置页面边框的步骤如下所述: 1.打开Word2007 ...
- 计算机页面边框怎么设置,[计算机]在Word2003文档中设置页面边框.doc
[计算机]在Word2003文档中设置页面边框.doc 上传人:max****ui 文档编号:14044395 上传时间:2019-01-31 格式:DOC 页数:4 大小:319.68KB 下载提示 ...
- QT使用html改变字体颜色,QT中设置字体和更改字体颜色
QT中设置字体和更改字体颜色 对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置 并定义了它的相应函数setFont,将setFontButton添加到布局中, ...
- 在Qt中设置程序图标的方法介绍
本文主要介绍在 Qt 中设置程序图标的方法. 说明: 本文中的应用程序是面向 Windows 操作系统的: 本文中使用的 Qt Creator 版本号为:7.0.0: 本文中使用的 Qt 版本号为:5 ...
- QT中设置字体和更改字体颜色
QT中设置字体和更改字体颜色 对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置 并定义了它的相应函数setFont,将setFontButton添加到布局中, ...
- 在Qt中设置鼠标光标形状的方法介绍
本文主要介绍在 Qt 中设置鼠标光标形状的方法. 说明: 本文中的应用程序是面向 Windows 操作系统的: 本文中使用的 Qt Creator 版本号为:7.0.0: 本文中使用的 Qt 版本号为 ...
最新文章
- 继智能手机之后,增强现实如何再次改变我们与世界的交互方式
- java int越界_用位运算判断int类型变量越界
- 关于server 2008 r2中文版安装多国语言用户界面包(英文)
- 【XAuido2】播放wav和ogg格式音频文件
- 汇编-子程序参数传递的三种方式-寄存器法,堆栈法,参数赋值法【详述后两者】
- 如何获取元素在父级div里的位置_关于元素的浮动你了解多少
- C++:38---final关键字和禁止类继承
- LeetCode 797. 所有可能的路径(DFS)
- Google菜市场(Android Market)上不去的解决方法
- linux中 ls |wc -l
- tomcat默认密码,admin,manager密码需要自己设置,tomcat-users.xml
- 权限判断 java_一个简单的关于权限判断登陆的javaBean文件
- flask v0.1 项目工程
- 人穷的时候,最看不起自己的是谁?
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①...
- 详解面试手撕过的那些排序算法
- 2.微服务:从设计到部署 --- 使用 API 网关
- meshlab调整平行光源
- 直播绿幕抠图的例子(绿幕抠图直播实例参考)
- iOS 关于iTMSTransporter上传IPA报错问题