QGradient

参考文档

(一)简介

QGradient类与QBrush一起使用来指定渐变填充。

Qt目前支持三种类型的渐变填充:

  1. 线性渐变(QLinearGradient)
  2. 圆形渐变(QRadialGradient)
  3. 锥形渐变(QConicalGradient)

(二)枚举类型

1.spread

铺展效果
enum Spread { PadSpread, RepeatSpread, ReflectSpread }

  1. PadSpread:默认铺展效果,没有被渐变覆盖的区域填充单一的起始颜色或终止颜色
  2. RepeatSpread:渐变在渐变区域外重复,只对线性渐变和圆形渐变起作用
  3. ReflectSpread:渐变在渐变区域外反射,只对线性渐变和圆形渐变起作用

2.CoordinateMode

该枚举指定了渐变坐标如何映射到使用渐变的绘制设备。
enum CoordinateMode { LogicalMode, StretchToDeviceMode, ObjectBoundingMode }

  1. LogicalMode: 这是默认模式。渐变坐标是指定的逻辑空间,就像对象坐标。
  2. StretchToDeviceMode:在此模式下,渐变坐标相对于绘制设备的边界矩形,(0,0)位于绘制设备的左上角,(1,1)位于绘制设备的右下角
  3. ObjectBoundingMode:在此模式下,渐变坐标相对于被绘制对象的边界矩形,(0,0)在该对象边界矩形的左上角,(1,1)在该对象边界矩形的右下角

3.type

渐变类型
enum Type { LinearGradient, RadialGradient, ConicalGradient, NoGradient }

  1. LinearGradient:线性渐变
  2. RadialGradient:圆形渐变
  3. ConicalGradient: 锥形渐变
  4. 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渐变填充的更多相关文章

  1. Qt 2D绘图之一:基本图形绘制和渐变填充

    Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类.它们三者的关系如下图所示: QP ...

  2. Qt之图形(渐变填充)

    简述 QGradient可以和QBrush组合使用,来指定渐变填充. Qt目前支持三种类型的渐变填充: QLinearGradient:显示从起点到终点的渐变. QRadialGradient:以圆心 ...

  3. [Xcode 实际操作]二、视图与手势-(7)UIView视图的渐变填充

    目录:[Swift]Xcode实际操作 本文将演示创建一个具有渐变填充色的图形 import UIKit class ViewController: UIViewController { overri ...

  4. canvas放射性渐变填充

    今天在学习canvas时,遇到canvas的fillstyle有一个createRadialGradient()方法,创建放射性渐变. 上代码: <!DOCTYPE html> <h ...

  5. Qt 2D绘图 渐变填充(三种渐变方式)

    在qt中提供了三种渐变方式,分别是线性渐变,圆形渐变和圆锥渐变.如果能熟练应用它们,就能设计出炫目的填充效果. 线性渐变: 1.更改函数如下: void Dialog::paintEvent(QPai ...

  6. Photoshop 画布的渐变填充

    之前丢掉的要开始慢慢的捡起来,因为学如逆水行舟,不进则退.古人诚不欺我等. 1.新建图层,或者就在当前图层进行操作,选择图层 2.工具箱---1渐变工具---2径向渐变---模式--正常.不透明100 ...

  7. Java基础之在窗口中绘图——渐变填充(GradientApplet 1)

    Applet程序. import javax.swing.*; import java.awt.*; import java.awt.geom.*; @SuppressWarnings("s ...

  8. VC 实现视图区背景颜色渐变填充

    void CSTest1View::OnDraw(CDC* pDC) { CSTest1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO:  ...

  9. 每日一笔记之2:QT之坐标系统:

    以前一直多单片机开发,也没怎么使用过大的显示器,第一次学习,备忘: QT画图系统. 绘图,通过QPainter类实现. Qt的绘图系统对底层函数进行了良好的封装,使得在屏幕和设备的绘图功能可能使用相同 ...

  10. html5 canvas 填充渐变形状

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 压制GIF做的一点点小尝试 以及ezgif的基本功能使用

    事情的起因 首先群友给我整了个loli莉音的视频 很可爱 但是用qq接收的视频没法一直在那边kawaii 图片本身很小其实 但是转gif就很大 转出来的gif的大小就大的唏嘘 寻找问题 这就是mp4的 ...

  2. 轻松理解Java中的public、private、static和final

    一.概念 1.public和private 两个都是访问权限修饰符,用于控制外界对类内部成员的访问. public:表明对象成员是完全共有的,外界可以随意访问.用public修饰的数据成员.成员函数是 ...

  3. 基准测试工具 --- BenchmarkDotNet

    介绍 今天介绍一个非常强大的基于.Net 的基准测试工具BenchmarkDotNet. BenchmarkDotNet 已经被14300多个项目采用,包括非常多的知名开源项目,例如 dotnet/p ...

  4. Linux 函数: my_func

    # A man and his 'fuctions' ;) # quick use ipmitool cmd to do something ipmi-ip-cmd () { local ip=$1 ...

  5. 升讯威在线客服系统是如何实现对 IE8 完全完美支持的(怎样从 WebSocket 降级到 Http)【干货】

    简介 升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放.开源.共享.努力打造 .net 社区的一款优秀开源产品. 完整私有化包下载地址 https ...

  6. 一文了解react中定义样式(css/less/sass)的常用方法

    react中通过jsx的语法方式,将html标签和js语法联系在一起,而css的编写方式,没有明确的指定编写方式,目前就有很多不同方法,每个方式各有其优缺点,我们一起来看看常用的定义方式有哪些. 最基 ...

  7. 手把手教你使用人工智能生成游戏 3D 素材

    引言 生成式 AI 已成为游戏开发中艺术工作流的重要组成部分.然而,正如我在 之前的文章 中描述的,从文本到 3D 的实用性仍落后于 2D.不过,这种情况正在改变.本文我们将重新审视 3D 素材生成的 ...

  8. Lazada详情接口的应用

    Lazada是东南亚电商领域的一家知名企业,Lazada商品详情接口是Lazada提供的一种获取Lazada平台商品详细信息的接口.本文将介绍Lazada商品详情接口的使用方法和相关注意事项. 第一步 ...

  9. 关于oop的一点回忆

    昨天在一个程序员行业群里看到别人发了一条消息, 大意是:要做好封装啦,不要随便用public啦,不要随便改别人代码啦. 说的好像就是我,因为,我这辈子最后悔的一件事情之一就是手贱改动别人代码. 那大概 ...

  10. 「Semigroup と Monoid と Functional と」

    一个被国内 oi 环境弱化至几乎不存在的概念,不过我觉得还是有学一学的必要.因为我没学过代数结构所以大部分内容都在开黄腔,欲喷从轻. Semigroup 的定义是,\(\forall a,b\in\m ...