实战PyQt5: 117-梯度渐变效果QGradient
文章插图
QGradient简介QGradient类与QBrush结合使用以指定渐变填充 。 Qt当前支持三种类型的渐变填充:
- 线性渐变: 在起点和终点之间插入颜色 。
- 简单的径向渐变: 在焦点和围绕它的圆上的端点之间插入颜色 。
- 扩展的径向渐变: 可在中心和焦距之间插值颜色 。
- 圆锥形渐变: 在中心点周围插入颜色 。
文章插图
三种渐变效果(图片来源doc.qt.io)
通过使用QGradientStop类型来定义渐变颜色在停止点 , 使用setColorAt函数可以定义一个停止点 , 使用setStops()函数可以一次性定义多个停止点 。 如果未指定停止点 , 则使用0处黑色到1处白色的渐变 。 渐变的完整停止点集(可通过stops()函数访问)描述了渐变区域应该如何填充 。 下面的示例代码指定了从(100, 100)位置的黑色到(200,200)位置的白色的对角线渐变:
linearGrad = QLinearGradient(QPointF(100, 100), QPointF(200, 200))linearGrad.setColorAt(0, Qt.black)linearGrad.setColorAt(1, Qt.white)
渐变可以具有任意数量的停止点 。 下面的代码将创建一个径向渐变 , 从中心开始是红色 , 然后渐变到蓝色 , 最后渐变到绿色:radialGrad = QRadialGradient(QPointF(100, 100), 100)radialGrad.setColorAt(0, Qt.red)radialGrad.setColorAt(0.5, Qt.blue)radialGrad.setColorAt(1, Qt.green)
QGradient.Type枚举定义了可使用的渐变类型:- QGradient.LinearGradient (0): 在起点和终点之间插入颜色(QLinearGradient) 。
- QGradient.RadialGradient (1): 在焦点和围绕它的圆上的端点(QRadialGradient)之间插入颜色 。
- QGradient.ConicalGradient (2): 在中心点(QConicalGradient)周围插入颜色 。
- QGradient.NoGradient (3): 不使用渐变 。
- QGradient.PadSpread (0): 该区域将填充最接近的停止色 。 这是默认值 。
- QGradient.ReflectSpread(1): 渐变会反射到渐变区域之外 。
- QGradient.RepeatSpread (2): 在渐变区域外重复渐变 。
文章插图
三种扩散方式(图片来源doc.qt.io)
可以使用相对于设备坐标或者相对于对象边界框的逻辑坐标来指定梯度渐变坐标 。 使用函数setCoordinateMode()来设置 , 默认值为LogicalMode 。 QGradient.CoordinateMode枚举定义了可以使用的坐标模式:
- Gradient.LogicalMode (0): 这是默认模式 。 像对象坐标一样 , 梯度坐标也被指定为逻辑空间 。
- QGradient.ObjectMode (3): 在此模式下 , 梯度坐标相对于绘制对象的边界矩形 , 其中(0,0)在对象的边界矩形的右上角 , (1,1)在对象的边界矩形的右下角 。 这个值是在Qt 5.12中添加的 。
- QGradient.StretchToDeviceMode (1): 在此模式下 , 梯度坐标相对于绘画设备的边界矩形 , 其中(0,0)在绘画设备的左上角 , (1,1)在绘画设备的右下角 。
- QGradient.ObjectBoundingMode (2): 此模式与ObjectMode相同 , 除了{ QBrush :: transform()} {brush transform}(如有)相对于逻辑空间而不是对象空间应用 。 此枚举值已弃用 。
- setCoordinateMode(self, coordinateMode :QGradient.Type):设置渐变的坐标模式 , 默认模式为LogicalMode 。
- coordinateMode(self):获得渐变的坐标模式 。
- setColorAt(self, pos : float, color :QColor):在指定位置pos , 用颜色color设置一个停止点 。
- setSpread(self, spread: QGradient.Spread):设置渐变的扩散方式 。
- spread(self):获得扩散方式 。
- setStops(self, stopPoints :QGradientStops):用给定的stopPoints替换当前的一组停止点 。 点的位置必须在0到1的范围内 , 并且必须从最低点开始排序 。
- stops(self):获得渐变的停止点集 。
- type(self):获得渐变的类型 。
- Wireshark数据包分析实战:TCP报文段重组
- Python爬虫采集网易云音乐热评实战
- Django实战016:django中使用redis详解
- HTTP实战之Wireshark抓包分析
- Wireshark数据包分析实战:网卡卸载
- Python数据分析:数据可视化实战教程
- 实战经验:电商平台遭遇CC攻击,我们是如何应对的?
- Tencent IN对话 | 八位互联网实战家,实战智慧营销商学院
- HLS实战之Wireshark抓包分析
- Vue实战091:Vue项目部署到nginx服务器