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/ ...
随机推荐
- Redis集群搭建之三大模式
一.简介: Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存.Redis 在3.0版本前只支持单实例模式,虽然支持主从模式.哨兵模式部署来解 ...
- Oracle批量处理SQL
批量更新且更新字段数字需要递增 示例: DECLARE n int; -- 定义变量 BEGIN n:=1000010; --为n 赋值 FOR i IN (SELECT AGENCY.ID FROM ...
- Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: 拒绝连接 (Connection refused) (state=08S01,code=0)
一:启动hiveserver2服务 二:启动beeline 三:连接hiveserver2(下面的1000000端口号适当改小写因为其超出最大端口号的范围建议改为10000) 如果启动不成功实现我们先 ...
- 在langchain中使用带简短知识内容的prompt template
简介 langchain中有个比较有意思的prompt template叫做FewShotPromptTemplate. 他是这句话的简写:"Prompt template that con ...
- python=2.7-not available from current channels
现象 使用miniconda3创建python2的环境 Collecting package metadata (current_repodata.json): done Solving enviro ...
- Datahub稳定版本0.10.4安装指南(独孤风版本)
大家好,我是独孤风,大数据流动的作者. 曾几何时,我在第一次安装JDK环境的时候也遇到了不小的麻烦,当时还有朋友就因为这个环境问题觉得自己根本不是编程的料,选择了放弃.当时有个段子说,"如果 ...
- debian11安装mysql5.7
前言 mysql官网5.7版本的只找到debian10的,没有debian11的,试了下也能用. 系统版本:debian 11 mysql版本:5.7.35 步骤 下载bundle的tar包.官网地址 ...
- CAP 7.2 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 7.2 版本正式版,我们在这个版本中主要致力于 Dashboard 对 k8s 服务发现的支持. 从 7.1 版本以来,我们发布了4个小版本,在这些版本中我们 ...
- SpringBoot3集成Quartz
目录 一.简介 二.工程搭建 1.工程结构 2.依赖管理 3.数据库 4.配置文件 三.Quartz用法 1.初始化加载 2.新增任务 3.更新任务 4.暂停任务 5.恢复任务 6.执行一次 7.删除 ...
- 开机自动打开termux以及启动termux的服务
ps:因为我们的服务是安装在平板上面的termux,客户不想维护麻烦,如果平板重启之后还需要手动启动ternux,还要开启命令启动服务,这样比较麻烦,所以研究如下操作 1.安装macroDroid 直 ...