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/ ...
随机推荐
- Struts2 小知识点
配置struts.xml文件,选择开发模式 在实际应用开发或者是产品部署的时候,对应着两种模式: 开发模式(devMode):此时 DevMode=ture: 产品模式(proMode):此时 Dev ...
- keycloak~AbstractJsonUserAttributeMapper的作用
AbstractJsonUserAttributeMapper 它是一个抽象类,用来更新条件更新用户属性(user_attribute)的信息,我们在实现自己的mapper时,需要关注3个方法,下面分 ...
- Composer 镜像原理 (1) —— 初识 Composer
相关文章 Composer 镜像原理 (1) -- 初识 Composer Composer 镜像原理 (2) -- composer.json Composer 镜像原理 (3) -- 完结篇 何为 ...
- Linux 脚本:冒泡排序
#!/bin/bash arr=(3 2 5 4 1) len=${#arr[@]} for i in $(seq 1 $len) ; do index=$(($len - $i - 1)) for ...
- 关于预处理器 sass 的超全用法
随着用户需求的增加,应用于页面的 css 代码越来越复杂越发臃肿难以维护,但是又没有 css 的替代品,css 预处理器作为 css 的扩展,出现在前端技术中. sass 是 css 预处理器中常用的 ...
- cdn 引入的资源需要通过 externals 排除打包哦~
cdn 指的是通过相互连接的网络系统,使用最靠近用户的服务器将音乐.图片等资源以高效率和低成本的方式将内容传递给用户. 在 webpack 中,我们可能会将引入的第三方资源会编译成单独的文件,作为静态 ...
- Datahub稳定版本0.10.4安装指南(独孤风版本)
大家好,我是独孤风,大数据流动的作者. 曾几何时,我在第一次安装JDK环境的时候也遇到了不小的麻烦,当时还有朋友就因为这个环境问题觉得自己根本不是编程的料,选择了放弃.当时有个段子说,"如果 ...
- 2023牛客暑期多校训练营7 CGILM
比赛链接 C 题解 知识点:位运算,贪心. 我们用分段的思想考虑大小关系,若在同一段则大小不能确定,一开始为 \([1,n]\) . 我们按位从高到低考虑,某位如果 \(b_i\) 产生了 \(1\) ...
- 《高级程序员 面试攻略 》rabitmq rcoketmq kafka的区别 和应用场景
RabbitMQ.RocketMQ 和 Kafka 都是流行的消息中间件系统,用于实现分布式应用程序之间的异步通信.虽然它们都有类似的目标,但在设计和应用场景上存在一些区别. 1. RabbitMQ( ...
- SRC赏金猎人—笔记一
以下是我如何将 webshell 上传到一个旧目标中, 这是使用谷歌dorks,Js检查和文件上传过滤器绕过. 过程 1.我随机选择了一个范围很大的目标开始 2.我启动了自动化脚本来发现使用的技术.d ...