28、Qt 之图形(渐变填充)
简述
QGradient 可以和 QBrush 组合使用,来指定渐变填充。
Qt 目前支持三种类型的渐变填充:
- QLinearGradient:显示从起点到终点的渐变
- QRadialGradient:以圆心为中心显示渐变
- QConicalGradient:围绕一个中心点显示渐变
使用 QGradientStop 类来描述渐变中过渡点的位置和颜色。例如:一个位置和一个颜色。使用 setColorAt() 函数来定义一个过渡点。或者,使用 setStops() 函数来一次定义多个过渡点。需要注意的是,后者的功能将替换当前设置的过渡点。
这是渐变的一套完整的过渡点(通过 stops() 来访问)描述渐变区域如何被填充。如果没有指定任何过渡点,那么将会从 0 点(黑色)渐变为 1 点(白色)。
渐变类型可以使用 type() 函数来检索,类型中的每一个都是 QGradient 的子类。
1、QLinearGradient
QLinearGradient 显示从起点到终点的渐变。
void MainWindow::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter(this);// 反走样painter.setRenderHint(QPainter::Antialiasing, true);// 设置渐变色QLinearGradient linear(QPointF(80, 80), QPointF(150, 150));linear.setColorAt(0, Qt::black);linear.setColorAt(1, Qt::white);// 设置显示模式linear.setSpread(QGradient::PadSpread);// 设置画笔颜色、宽度painter.setPen(QPen(QColor(0, 160, 230), 2));// 设置画刷填充painter.setBrush(linear);// 绘制椭圆painter.drawRect(QRect(40, 40, 180, 180));
}
QLinearGradient 构造函数的第一个参数指定起点,第二个参数指定终点,然后显示渐变。函数setColorAt() 用于设置起点和终点之间要显示的颜色,setSpread() 可以设置起点和终点区域之外的显示模式。
2、QRadialGradient
QRadialGradient 类以圆心为中心显示渐变。(cx, cy) 是中点,半径(radius)是以中点为圆心的圆的半径,(fx, fy) 是渐变的起点。
void MainWindow::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter(this);// 反走样painter.setRenderHint(QPainter::Antialiasing, true);// 设置渐变色QRadialGradient radial(110, 110, 50, 130, 130);radial.setColorAt(0, Qt::black);radial.setColorAt(1, Qt::white);// 设置显示模式radial.setSpread(QGradient::ReflectSpread );// 设置画笔颜色、宽度painter.setPen(QPen(QColor(0, 160, 230), 2));// 设置画刷填充painter.setBrush(radial);// 绘制椭圆painter.drawRect(QRect(40, 40, 180, 180));
}
3、QConicalGradient
QConicalGradient 在 (cx, cy) 坐标上以角度 (angle) 为中心显示渐变。
void MainWindow::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter(this);// 反走样painter.setRenderHint(QPainter::Antialiasing, true);// 设置渐变色QConicalGradient conical(110, 110, 45);conical.setColorAt(0, Qt::black);conical.setColorAt(1, Qt::white);// 设置画笔颜色、宽度painter.setPen(QPen(QColor(0, 160, 230), 2));// 设置画刷填充painter.setBrush(conical);// 绘制椭圆painter.drawRect(QRect(40, 40, 180, 180));
}
QConicalGradient的前两个参数是位置,最后一个参数表示角度。
28、Qt 之图形(渐变填充)相关推荐
- QSS之图形渐变填充
QSS 之图形渐变填充 在 Qt 中,目前支持三种渐变填充方式,这三种方式都是 QGradient 的子类,它可以与画刷 QBrush 组合使用,来指定特定对象图形的填充方式.这三种填充方式是: QL ...
- winform 填充圆形 锯齿_Qt项目中,三种图形渐变填充方式详细总结
总第40篇 本文主要详细梳理了Qt项目开发过程中,对图形的三种渐变填充方式,以便后面参考. 在Qt中,目前支持三种渐变填充方式,这三种方式都是QGradient的子类,它可以与画刷 QBrush组合使 ...
- linux 终端 渐变色,QT学习笔记-渐变填充
渐变,是指逐渐的,有规律性的变化,是一种规律性很强的现象.提供了一个与渐变相关的QGradient类,目前支持三种渐变画刷,分别是线性渐变(QLinearGradient).辐射渐变(QRadialG ...
- Qt之Gradient渐变填充
前面说了有关反走样的相关知识,下面来说一下渐变.渐变是绘图中很常见的一种功能,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子变成另一种颜色.渐变的算法比较复杂,写得不好的话效 ...
- 【Qt】2D绘图之渐变填充
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 线性渐变 04. 辐射渐变 05. 锥形渐变 06. 附录 01. 概述 在画刷中可以使用渐变填充.QGradient类就 ...
- [Qt教程] 第12篇 2D绘图(二)渐变填充
[Qt教程] 第12篇 2D绘图(二)渐变填充 楼主 发表于 2013-4-23 17:59:31 | 查看: 689| 回复: 1 渐变填充 版权声明 该文章原创于Qter开源社区,作者yafei ...
- Qt之图形(QPainter的基本绘图)
简述 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice 和 QPaintEngine 这三个类. QPai ...
- Qt 之图形(QPainter 的基本绘图)
简述 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice 和 QPaintEngine 这三个类. QPai ...
- 计算机word设置渐变填充,Word中鲜为人知的渐变效果设置
Word中鲜为人知的渐变效果设置方法带给大家,通常我们通道最多的就是在ps中制作图片的时候使用渐变的方法,相信很多人并不知道Microsoft Word软件中其实也具有为图形设置渐变颜色的功能吧,小编 ...
最新文章
- Zxing生成二维码思路和源码解析
- 快速排序 ——双游标、单游标实现
- Vue2.x-03使用vue-cli搭建Vue开发环境
- 二叉树实现java,二叉树实现java
- 人工智能红利渗透与爆发
- 【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式。...
- python登录验证码生成及自动化测试规避
- HTML代码 笔记 部分
- sans webcast
- 跨平台的PHP+MySQL_跨平台的PHP+MySQL
- 锐捷校园网自动认证路由脚本
- 哈理工OJ 1562 字符统计器(水模拟)
- android安装包解析错误
- 49、建筑外墙上防火墙的设置
- 留美CS学习的第一学期总结
- java 随机字母_如何用java随机生成一个字母
- 如何在共享中添加计算机,如何在网上邻居中添加共享文件夹
- (转)企业级NFS网络文件共享服务
- csu1335 高桥与低桥
- 学习笔记-应用编程与网络编程-2(文件属性+附代码)
热门文章
- ofo小黄跑路,中国人素质真的差吗?
- Object Detection with Discriminatively Trained Part Based Models(使用判别训练的部件模型进行目标检测 )
- 美素将进入中国空间站,以太空科技打造“国货之光”
- php调用ua_php得到用户浏览器类型(UA) | 2hei's site
- websocket实现消息群发
- 迷你播放器--第一阶段(2)--退出时自动最小化(不是关闭),增加当前播放曲目的跑马灯效果
- 超级马里奥游戏开发一(游戏基本界面)
- WebP 文件及其编码解码工具(WebPconv)
- CCF 201903-2 二十四点 用栈模拟简单计算器
- 微信公众号客服系统怎么生成能追踪效果的二维码?