简述

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 之图形(渐变填充)相关推荐

  1. QSS之图形渐变填充

    QSS 之图形渐变填充 在 Qt 中,目前支持三种渐变填充方式,这三种方式都是 QGradient 的子类,它可以与画刷 QBrush 组合使用,来指定特定对象图形的填充方式.这三种填充方式是: QL ...

  2. winform 填充圆形 锯齿_Qt项目中,三种图形渐变填充方式详细总结

    总第40篇 本文主要详细梳理了Qt项目开发过程中,对图形的三种渐变填充方式,以便后面参考. 在Qt中,目前支持三种渐变填充方式,这三种方式都是QGradient的子类,它可以与画刷 QBrush组合使 ...

  3. linux 终端 渐变色,QT学习笔记-渐变填充

    渐变,是指逐渐的,有规律性的变化,是一种规律性很强的现象.提供了一个与渐变相关的QGradient类,目前支持三种渐变画刷,分别是线性渐变(QLinearGradient).辐射渐变(QRadialG ...

  4. Qt之Gradient渐变填充

    前面说了有关反走样的相关知识,下面来说一下渐变.渐变是绘图中很常见的一种功能,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子变成另一种颜色.渐变的算法比较复杂,写得不好的话效 ...

  5. 【Qt】2D绘图之渐变填充

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 线性渐变 04. 辐射渐变 05. 锥形渐变 06. 附录 01. 概述 在画刷中可以使用渐变填充.QGradient类就 ...

  6. [Qt教程] 第12篇 2D绘图(二)渐变填充

    [Qt教程] 第12篇 2D绘图(二)渐变填充 楼主  发表于 2013-4-23 17:59:31 | 查看: 689| 回复: 1 渐变填充 版权声明 该文章原创于Qter开源社区,作者yafei ...

  7. Qt之图形(QPainter的基本绘图)

    简述 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice 和 QPaintEngine 这三个类. QPai ...

  8. Qt 之图形(QPainter 的基本绘图)

    简述 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice 和 QPaintEngine 这三个类. QPai ...

  9. 计算机word设置渐变填充,Word中鲜为人知的渐变效果设置

    Word中鲜为人知的渐变效果设置方法带给大家,通常我们通道最多的就是在ps中制作图片的时候使用渐变的方法,相信很多人并不知道Microsoft Word软件中其实也具有为图形设置渐变颜色的功能吧,小编 ...

最新文章

  1. Zxing生成二维码思路和源码解析
  2. 快速排序 ——双游标、单游标实现
  3. Vue2.x-03使用vue-cli搭建Vue开发环境
  4. 二叉树实现java,二叉树实现java
  5. 人工智能红利渗透与爆发
  6. 【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式。...
  7. python登录验证码生成及自动化测试规避
  8. HTML代码 笔记 部分
  9. sans webcast
  10. 跨平台的PHP+MySQL_跨平台的PHP+MySQL
  11. 锐捷校园网自动认证路由脚本
  12. 哈理工OJ 1562 字符统计器(水模拟)
  13. android安装包解析错误
  14. 49、建筑外墙上防火墙的设置
  15. 留美CS学习的第一学期总结
  16. java 随机字母_如何用java随机生成一个字母
  17. 如何在共享中添加计算机,如何在网上邻居中添加共享文件夹
  18. (转)企业级NFS网络文件共享服务
  19. csu1335 高桥与低桥
  20. 学习笔记-应用编程与网络编程-2(文件属性+附代码)

热门文章

  1. ofo小黄跑路,中国人素质真的差吗?
  2. Object Detection with Discriminatively Trained Part Based Models(使用判别训练的部件模型进行目标检测 )
  3. 美素将进入中国空间站,以太空科技打造“国货之光”
  4. php调用ua_php得到用户浏览器类型(UA) | 2hei's site
  5. websocket实现消息群发
  6. 迷你播放器--第一阶段(2)--退出时自动最小化(不是关闭),增加当前播放曲目的跑马灯效果
  7. 超级马里奥游戏开发一(游戏基本界面)
  8. WebP 文件及其编码解码工具(WebPconv)
  9. CCF 201903-2 二十四点 用栈模拟简单计算器
  10. 微信公众号客服系统怎么生成能追踪效果的二维码?