文章目录

  • 前言
  • 一、锥形渐变是什么?
  • 二、示例代码
  • 总结

前言

在Qt中锥形渐变属于是最简单的渐变。只需要定义一个中心点,和一个其实角度,按照逆时针方向进行渐变,而且没有spread设置


一、锥形渐变是什么?

QConicalGradient 锥形渐变插值围绕 中心点 逆时针 插值。

QConicalGradient 使用QGradientStop类型的停止点(即位置和颜色)定义渐变中的颜色。 使用QGradient :: setColorAt()或QGradient :: setStops()函数来定义停止点。 渐变的完整停止点集描述了渐变区域应如何填充。 如果未指定任何停止点,则使用0处黑色到1处白色的渐变。

构造函数:QConicalGradient(const QPointF &center, qreal angle)

  • center :中心点的位置
  • angle:起始角度 ,0~360之间
  • 停止点,可以用 角颜色来形容,使用QGradient :: setColorAt()来设置

二、示例代码

代码如下(示例):

void Widget::paintEvent(QPaintEvent *)
{int centerX = width() / 2;int centerY = height() / 2;int size = qMin(centerX,centerY)*0.8;QPainter painter(this);painter.setRenderHints(QPainter::Antialiasing);painter.setPen(Qt::NoPen);//锥形渐变QConicalGradient g(centerX,centerY,90);double s = 6.0;g.setColorAt(0/s,QColor("red"));g.setColorAt(1/s,QColor("yellow"));g.setColorAt(2/s,QColor("lime"));g.setColorAt(3/s,QColor("aqua"));g.setColorAt(4/s,QColor("blue"));g.setColorAt(5/s,QColor("magenta"));g.setColorAt(6/s,QColor("red"));painter.setBrush(g);painter.drawEllipse(centerX-size,centerY-size,size*2,size*2);//径向渐变QRadialGradient gr(centerX,centerY,size);gr.setColorAt(0,QColor("gray"));gr.setColorAt(1,QColor(Qt::transparent));painter.setBrush(gr);painter.drawEllipse(centerX-size,centerY-size,size*2,size*2);
}

总结

本文仅仅简单介绍了QConicalGradient的构造函数和简单的使用。另外,Qt的锥形渐变不适合用来绘制饼图,角颜色设置需要重复,反而增加了代码的复杂图。建议用基本绘制方法QPainter::drawPie()来实现。希望Qt后期能够改进这个类,能实现CSS中的锥形渐变的功能

Qt 渐变(六): 锥形渐变的使用相关推荐

  1. 前端技术分享:锥形渐变conic-gradient你了解多少?

    渐变效果在开发中我们可能会经常使用到,像什么线性渐变linear-gradient啦,还有径向渐变radial-gradient,但今天我们讲的是锥形渐变conic-gradient. 当然,我们这次 ...

  2. 一文搞懂Qt中的颜色渐变(QGradient Class)

    一文搞懂Qt中的颜色渐变(QGradient Class) 1, 快速开始! Qt中与颜色渐变有关的类是QGradient 其中它又有三个子类:QLinearGradient.QRadialGradi ...

  3. CSS锥形渐变实现环形进度条

    10月份因为疫情原因.又开启了居家办公模式,空闲之余,与其选择"躺平",不如去做一些有意义的事情,内心的想法驱使着我去做些什么,但是又没有合适的素材,直到接手了最近的一个可视化项目 ...

  4. QT 之QBrush 与渐变

    在平时编程中,QBrush定义了绘图过程中,填充形状的模式或规则.在QPainter,QPen类中,是个很重要的属性. QBrush 有 以下几种重要属性 1.style() : 定义了填充模式,默认 ...

  5. Qt 渐变(五):线性渐变和径向渐变生成星空图

    1.Qt 渐变(五): DrawShapes Demo 参考<Java极富客户端>中的例子 DrawShapes 仿 DrawShapes的代码:其思路都尽量和原代码接近. 在DrawSh ...

  6. Qt 实现窗口边框渐变闪烁的效果

    文章目录 前言 效果 核心代码 编程思路 widget.h widget.cpp 前言   Qt实现窗口边缘渐变闪烁效果,产生某种"闪烁告警"的效果,主要思想是通过QTimer设定 ...

  7. android 锥形进度条,canvas锥形渐变进度条

    从一个渐变圆角进度条浅出画一个圆 开始 这一切需要从一个(简单)的需求开始,在最开始对设计第一眼看到这张图的时候,感觉挺简单的嘛,直接用echarts饼图模拟出来一个就好了 echarts 然后上ec ...

  8. canvas实现锥形渐变

    canvas实现锥形渐变 感谢大神LeaVerou 原本css中有个background:conic-gradient 可以实现,但是兼容性极差,我原本在项目中使用了,在电脑测试没有问题,效果出来了, ...

  9. css锥形渐变结合SVG实现环形进度条

    css锥形渐变结合SVG实现环形进度条 准备: 锥形渐变 MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient/conic-gra ...

最新文章

  1. Django 视图函数
  2. Kubernetes源码分析之kubelet
  3. Netty原理一:ServerBootstrap启动过程全解析
  4. hive(1)——用mysql进行元数据存储
  5. java模拟多线程买票问题
  6. 上两个月,15家面试,几个offer , 我的面试历程!
  7. 2、【STM32】新建工程模板、ISP串口程序下载、JLINK程序下载与调试(在线和软件)
  8. 资深程序员推荐七大JavaScript编程工具
  9. 用友nc java下载_用友nc的java插件下载
  10. 等级保护第三级安全通用要求笔记(2019)
  11. R语言方差分解分析(Variation partition analysis)及其显著性检验
  12. 串口调试助手linux设备串口,linux下安装串口调试助手
  13. 手把手教你做出数据可视化项目(三)3D地球旋转
  14. 搜索引擎模块设计与实现——相关度搜索算法模块
  15. 9月份入读哈工大计算机研究生了
  16. uni-app 170邀请加入群聊(二)
  17. AI+工业互联网:百度AI专利讲述“中国智造”
  18. 《王者荣耀》伤害计算(数值研究)
  19. Unity API常用方法和类
  20. 笔记本外接显示器闪烁(水波纹)解决方案

热门文章

  1. 【51nod】【堆】小明和他的朋友们
  2. 大疆无人机 从Mavic Pro 兼容 Mavic 2 zoom (解决方案)
  3. python中对list元素求和、求积的普通方法和便捷方法
  4. 基于LabVIEW的通信系统设计与实现
  5. aws服务器_AWS无服务器应用程序镜头—摘要
  6. python实现爱奇艺登陆的密码RSA加密
  7. 深度神经网络的工作原理,深度神经网络基本原理
  8. 工业元宇宙三人行系列直播第一场暨工业元宇宙白皮书发布会在北京举行
  9. chrome 验证码识别 扩展_验证码实在太过反人类?自动跳过验证码的神器-验证码,登录,安全 ——快科技(驱动之家旗下媒体)-...
  10. int8_t / int16_t / int32_t /int64_t 是什么数据类型