QGradient渐变填充
QGradient渐变填充
QGradient
(一)简介
QGradient类与QBrush一起使用来指定渐变填充。
Qt目前支持三种类型的渐变填充:
- 线性渐变(QLinearGradient)
- 圆形渐变(QRadialGradient)
- 锥形渐变(QConicalGradient)
(二)枚举类型
1.spread
铺展效果
enum Spread { PadSpread, RepeatSpread, ReflectSpread }
- PadSpread:默认铺展效果,没有被渐变覆盖的区域填充单一的起始颜色或终止颜色
- RepeatSpread:渐变在渐变区域外重复,只对线性渐变和圆形渐变起作用
- ReflectSpread:渐变在渐变区域外反射,只对线性渐变和圆形渐变起作用
2.CoordinateMode
该枚举指定了渐变坐标如何映射到使用渐变的绘制设备。
enum CoordinateMode { LogicalMode, StretchToDeviceMode, ObjectBoundingMode }
- LogicalMode: 这是默认模式。渐变坐标是指定的逻辑空间,就像对象坐标。
- StretchToDeviceMode:在此模式下,渐变坐标相对于绘制设备的边界矩形,(0,0)位于绘制设备的左上角,(1,1)位于绘制设备的右下角
- ObjectBoundingMode:在此模式下,渐变坐标相对于被绘制对象的边界矩形,(0,0)在该对象边界矩形的左上角,(1,1)在该对象边界矩形的右下角
3.type
渐变类型
enum Type { LinearGradient, RadialGradient, ConicalGradient, NoGradient }
- LinearGradient:线性渐变
- RadialGradient:圆形渐变
- ConicalGradient: 锥形渐变
- NoGradient
(三)常用函数
1.coordinateMode()
CoordinateMode coordinateMode() const
返回这个梯度的坐标模式。默认模式是LogicalMode。
2.setColorAt()
void setColorAt(qreal position, const QColor &color)
它的意思是把position位置的颜色设置成color。其中,position是一个0 - 1区间的数字。也就是说,position是相对于我们建立渐变对象时做的那个起始点和终止点区间的。0.0是起点,1.0是终点;setColorAt(0.3,Qt::white),设置起终点之间1/3位置为白色
3.setCoordinateMode()
void setCoordinateMode(CoordinateMode mode)
将这个渐变的坐标模式设置为模式。默认模式是LogicalMode。
4.setSpread()
void setSpread(Spread method)
指定应用于此渐变的扩展方法。
注意,这个函数只对线性和圆形渐变有效。
5.setStops()
void setStops(const QGradientStops &stopPoints)
用给定的停止点替换当前停止点集。点的位置必须在0到1的范围内,并且必须首先以最低点排序。
6.Spread()
Spread spread() const
7.stops()
QGradientStops stops() const
8.types()
Type type() const
QGradient渐变填充的更多相关文章
- Qt 2D绘图之一:基本图形绘制和渐变填充
Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类.它们三者的关系如下图所示: QP ...
- Qt之图形(渐变填充)
简述 QGradient可以和QBrush组合使用,来指定渐变填充. Qt目前支持三种类型的渐变填充: QLinearGradient:显示从起点到终点的渐变. QRadialGradient:以圆心 ...
- [Xcode 实际操作]二、视图与手势-(7)UIView视图的渐变填充
目录:[Swift]Xcode实际操作 本文将演示创建一个具有渐变填充色的图形 import UIKit class ViewController: UIViewController { overri ...
- canvas放射性渐变填充
今天在学习canvas时,遇到canvas的fillstyle有一个createRadialGradient()方法,创建放射性渐变. 上代码: <!DOCTYPE html> <h ...
- Qt 2D绘图 渐变填充(三种渐变方式)
在qt中提供了三种渐变方式,分别是线性渐变,圆形渐变和圆锥渐变.如果能熟练应用它们,就能设计出炫目的填充效果. 线性渐变: 1.更改函数如下: void Dialog::paintEvent(QPai ...
- Photoshop 画布的渐变填充
之前丢掉的要开始慢慢的捡起来,因为学如逆水行舟,不进则退.古人诚不欺我等. 1.新建图层,或者就在当前图层进行操作,选择图层 2.工具箱---1渐变工具---2径向渐变---模式--正常.不透明100 ...
- Java基础之在窗口中绘图——渐变填充(GradientApplet 1)
Applet程序. import javax.swing.*; import java.awt.*; import java.awt.geom.*; @SuppressWarnings("s ...
- VC 实现视图区背景颜色渐变填充
void CSTest1View::OnDraw(CDC* pDC) { CSTest1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: ...
- 每日一笔记之2:QT之坐标系统:
以前一直多单片机开发,也没怎么使用过大的显示器,第一次学习,备忘: QT画图系统. 绘图,通过QPainter类实现. Qt的绘图系统对底层函数进行了良好的封装,使得在屏幕和设备的绘图功能可能使用相同 ...
- html5 canvas 填充渐变形状
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- Hexo博客yilia主题首页添加helper-live2d模型插件
插件效果 插件的github地址 插件作者提供了较为详细的安装步骤,我结合自己操作和图示,提供大家. 效果展示:红框内为2d模型,可以随鼠标移动而变化 安装模块: hexo博客根目录选择cmd命令窗口 ...
- Flutter ncnn 使用
Flutter 实现手机端 App,如果想利用 AI 模型添加新颖的功能,那么 ncnn 就是一种可考虑的手机端推理模型的框架. 本文即是 Flutter 上使用 ncnn 做模型推理的实践分享.有如 ...
- FireflySoft.LeaderElection增加基于ZooKeeper的Leader选举
FireflySoft.LeaderElection的第一个版本实现了基于Consul的Leader选举,考虑到ZooKeeper的一个常见用途也是选主,所以此类库把ZooKeeper也集成了进来.并 ...
- postgresql + timescaledb离线安装笔记(zabbix数据库准备工作)
实验环境 操作系统:centos 7.6 PostgreSQL:14.6 timescaledb:2.8.1 网络:本地无网络 1 编译源码安装 1.1 准备工作 useradd postgres m ...
- 微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka
1 安装Redis 1.1创建配置文件redis.conf 切换到自己的目录下如本文是放在/home/ubuntu下 cd /home/ubuntu vim redis.conf bind 0.0.0 ...
- shell 代码风格
以终为始 initramfs_cgz=/srv/initrd/osimage/$os/$os_arch/${os_version%-iso}/$(date +"%Y%m%d").0 ...
- 行行AI人才直播第15期:【AIGC科技公司法律顾问】Amber《AIGC的法律挑战》
近年来,AIGC技术的迅速进步为社会经济发展带来了新的机遇.各行各业都开始关注AIGC相关技术在商业落地中的应用,AIGC相关的创业及项目如雨后春笋般涌现.然而,AIGC的广泛应用也带来了一系列的法律 ...
- JavaScript 基础(1) - 笔记
1 JavaScript基础 1.1 JavaScript 是什么 1.JavaScript(是什么?) 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果. 2.作用(做什么?) 网页特效(监 ...
- 深入了解Elasticsearch搜索引擎篇:倒排索引、架构设计与优化策略
什么是倒排索引?有什么好处? 倒排索引是一种用于快速检索的数据结构,常用于搜索引擎和数据库中.与传统的正排索引不同,倒排索引是根据关键词来建立索引,而不是根据文档ID. 倒排索引的建立过程如下:首先, ...
- SpringBoot 测试实践 - 2:单元测试与集成测试
单元测试 vs. 集成测试 只编写单测,无法测试方法之间的集成情况,而且某些需求可能会修改多个方法,这可能会影响方法对应的单测,涉及到大量的相关单测的修改,这样的维护成本很高 可以把重心放在完善集成测 ...