QGradient渐变填充

  • ​​QGradient​​
  • ​​(一)简介​​
  • ​​(二)枚举类型​​
  • ​​1.spread​​
  • ​​2.CoordinateMode​​
  • ​​3.type​​
  • ​​(三)常用函数​​
  • ​​1.coordinateMode()​​
  • ​​2.setColorAt()​​
  • ​​3.setCoordinateMode()​​
  • ​​4.setSpread()​​
  • ​​5.setStops()​​
  • ​​6.Spread()​​
  • ​​7.stops()​​
  • ​​8.types()​​

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​