qt QLinearGradient详解

embedded/2024/11/30 8:39:58/
1、概述

QLinearGradient是Qt框架中QGradient的一个子类,用于创建线性渐变效果。线性渐变是一种颜色沿着一条直线平滑过渡到另一种颜色的效果。QLinearGradient允许你定义渐变的起点和终点,以及在这些点之间的颜色变化。你可以使用它来为图形、背景、边框等添加丰富的视觉效果。

2、重要方法

QLinearGradient提供了一系列方法来设置和控制线性渐变的效果。以下是一些重要的方法:

  • QLinearGradient(const QPointF &start, const QPointF &finalStop):构造函数,用于创建一个从start点到finalStop点的线性渐变。
  • void setStart(const QPointF &start):设置渐变的起点。
  • void setFinalStop(const QPointF &finalStop):设置渐变的终点。
  • QPointF start():返回渐变的起点。
  • QPointF finalStop():返回渐变的终点。
  • void setColorAt(qreal position, const QColor &color):在渐变中设置一个颜色停靠点。position是一个0到1之间的浮点数,表示颜色在渐变中的位置(0表示开始,1表示结束)。color是该位置的颜色。
  • QList<QGradientStop> stops():返回渐变中所有颜色停靠点的列表。
3、重要信号

与QGradient一样,QLinearGradient本身并不直接发出信号。它是用于描述渐变效果的类,而不是一个交互式控件。然而,当使用QLinearGradient与绘图相关的类(如QPainter)一起时,可以通过监听绘图相关的事件或信号来间接地了解渐变的使用情况。

4、常用枚举类型

QLinearGradient并没有定义自己的枚举类型。它继承了QGradient的枚举类型,如QGradient::Type(用于标识渐变的类型,对于QLinearGradient来说,这个值总是QGradient::LinearGradient)、QGradient::CoordinateMode(用于设置渐变的坐标模式)等。


#include <QApplication>
#include <QWidget>
#include <QPainter>class GradientDemo : public QWidget {
public:GradientDemo(QWidget *parent = nullptr) : QWidget(parent) {resize(400, 300);}protected:void paintEvent(QPaintEvent *event) override {QPainter painter(this);// Create a linear gradient from top-left to bottom-rightQLinearGradient gradient(0, 0, width(), height());// Add color stopsgradient.setColorAt(0.0, Qt::red);gradient.setColorAt(0.5, Qt::yellow);gradient.setColorAt(1.0, Qt::blue);// Fill the entire widget with the gradientpainter.fillRect(rect(), gradient);// Create another gradient for demonstrationQLinearGradient horizontalGradient(0, height()/2, width(), height()/2);horizontalGradient.setColorAt(0.0, QColor(0, 255, 0, 127));horizontalGradient.setColorAt(1.0, QColor(0, 0, 255, 127));// Draw a rectangle with the second gradientpainter.fillRect(50, 50, width()-100, height()-100, horizontalGradient);}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);GradientDemo window;window.setWindowTitle("QLinearGradient Demo");window.show();return app.exec();
}

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 


http://www.ppmy.cn/embedded/141696.html

相关文章

【计算机网络】核心部分复习

目录 交换机 v.s. 路由器OSI七层更实用的TCP/IP四层TCPUDP 交换机 v.s. 路由器 交换机-MAC地址 链接设备和设备 路由器- IP地址 链接局域网和局域网 OSI七层 物理层&#xff1a;传输设备。原始电信号比特流。数据链路层&#xff1a;代表是交换机。物理地址寻址&#xff0c;交…

【前端开发】小程序无感登录验证

概述 封装的网络请求库&#xff0c;主要用于处理 API 请求并支持自动处理 token 过期 和 token 刷新&#xff0c;适用于需要身份验证的应用场景&#xff0c;特别是在移动端中。 主要功能 自动附加 Token 在每个请求中自动附加 Authorization 头部&#xff0c;使用存储的 acces…

【ChatGPT大模型开发调用】如何获得 OpenAl API Key?

如何获取 OpenAI API Key 获取 OpenAI API Key 主要有以下三种途径&#xff1a; OpenAI 官方平台 (推荐): 开发者用户可以直接在 OpenAI 官方网站 (platform.openai.com) 注册并申请 API Key。 通常&#xff0c;您可以在账户设置或开发者平台的相关页面找到申请入口。 Azure…

什么是JAVA反射??? 常用的API有哪些???怎么获取Class对象.....

目录 引言&#xff1a; 一、获取Class对象的方法 二、使用反射获取构造方法 三、使用反射获成员变量的方法 四、使用反射获成员方法 五.反射的优缺点有哪些? 优点包括: 缺点包括: 总结&#xff1a; 引言&#xff1a; 什么是反射&#xff1a;反射其实我们很早就知晓了…

Linux开发者的CI/CD(11)jenkins变量

文章目录 1. **环境变量 (Environment Variables)**常见的环境变量:示例:2. **构建参数 (Build Parameters)**常见的构建参数类型:示例:3 **在 `stages` 块内定义局部变量**示例:使用 `script` 步骤定义局部变量4 变量引用陷阱在 Jenkins 中,变量是自动化流程中非常重要的…

Vue进阶面试题目(四)

1. 什么是双向绑定? Vue 双向绑定的原理是什么? 双向绑定是一种数据绑定机制&#xff0c;指的是视图和数据之间可以相互同步。即&#xff0c;当模型数据&#xff08;Model&#xff09;发生变化时&#xff0c;视图&#xff08;View&#xff09;会自动更新&#xff1b;反之&am…

使用PyQt5开发一个GUI程序的实例演示

一、安装Python 下载安装到这个目录 G:\Python38-32 安装完成有这些工具&#xff0c;后面备用&#xff1a; G:\Python38-32\Scripts\pyrcc5.exe G:\Python38-32\Scripts\pyuic5.exe 二、PyQt环境配置 pip install PyQt5 pip install pyqt5-tools 建议使用国内源&#xff0c…

随机变量的线性最小均方估计(LMMSE)——多个观测变量

假设有一个随机变量 x x x需要估计&#xff0c;目标是找到一个线性估计器 x ^ ∑ i 0 N − 1 a i y i b \hat{x} \sum_{i0}^{N-1} a_i y_i b x^∑i0N−1​ai​yi​b&#xff0c;使得估计误差 e x − x ^ e x - \hat{x} ex−x^的均方误差 E [ e 2 ] E[e^2] E[e2]最小。 …