Qt 的线性渐变的类QLinearGradient 学习笔记

news2025/1/11 12:49:50

        QLinearGradient 是 Qt 中用于创建线性渐变的类,它允许你在控件上应用从一个颜色到另一个颜色的渐变效果。QLinearGradient 的参数用于定义渐变的方向、范围以及颜色变化。下面是 QLinearGradient 的各个主要参数及其详细解释:
1. x1 和 y1
定义:渐变的起始点坐标。
取值范围:0 到 1。
说明:x1 和 y1 定义了渐变起始点相对于渐变区域的坐标。坐标 (0, 0) 表示渐变区域的左上角,(1, 1) 表示右下角。
2. x2 和 y2
定义:渐变的结束点坐标。
取值范围:0 到 1。
说明:x2 和 y2 定义了渐变结束点相对于渐变区域的坐标。坐标 (0, 0) 表示渐变区域的左上角,(1, 1) 表示右下角。

3. stop
定义:渐变的颜色停靠点。
说明:每个 stop 定义了一个颜色及其在渐变中的位置。stop 后面跟的是渐变的位置(一个介于 0 到 1 之间的浮点值),以及对应的颜色值。例如,stop:0 rgba(255, 0, 0, 255) 表示渐变的起始点(0%)颜色为不透明的红色。
4. spread
定义:渐变的扩展方式。
PadSpread:渐变会继续填充到渐变区域的边界之外,超出部分使用边界的颜色。
RepeatSpread:渐变会重复填充,超出部分重复渐变的模式。
ReflectSpread:渐变会反射填充,超出部分呈现渐变的镜像效果。   
 示例1:

QLinearGradient gradient(0, 0, 1, 1);
gradient.setColorAt(0, Qt::red);
gradient.setColorAt(0.5, Qt::green);
gradient.setColorAt(1, Qt::blue);


这段代码创建了一个 QLinearGradient 对象,从渐变区域的左上角 (0, 0) 到右下角 (1, 1)。渐变开始时是红色,中间是绿色,结束时是蓝色。
示例2:
按钮的样式表:
background-color: qlineargradient(spread:pad, x1:1, y1:0, x2:0, y2:1, stop:0 red, stop:1 blue);   

试着创建两个指示灯:
1、在图形界面放置两个QLabel,长宽均设为40
2、分别输入样式表:
QLabel{
    border-radius: 20px;
    border: 2px solid rgb(100, 100, 100);    
    background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1, stop: 0 #bbffbb, stop: 1 #404040);
}

和:
QLabel{
    border-radius: 20px;
    border: 2px solid rgb(100, 120, 100);    
    background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1, stop: 0 #ffffff, stop: 0.3 #43ff43, stop: 1 #669066);
}
显示效果:
 

再试一个按钮:QPushButton,输入以下样式表内容:

QPushButton{

border-top: 2px solid #f0f0f0;

border-left: 2px solid #f0f0f0;

border-right: 2px solid #303030;

border-bottom: 2px solid #303030;

background-color: qlineargradient(x1: 1, y1: 0, x2: 1, y2: 1, stop: 0 #b0ddb0, stop: 1 #606060);

}

QPushButton:hover{

border-top: 1px solid #f0f0f0;

border-left: 1px solid #f0f0f0;

border-right: 1px solid #303030;

border-bottom: 1px solid #303030;

background-color: qlineargradient(x1: 1, y1: 0, x2: 1, y2: 1, stop: 0 #c0eec0, stop: 1 #b0b0b0);

}

QPushButton:pressed{

border-top: 2px solid #303030;

border-left: 2px solid #303030;

border-right: 2px solid #f0f0f0;

border-bottom: 2px solid #f0f0f0;

background-color: qlineargradient(x1: 1, y1: 0, x2: 1, y2: 1, stop: 0 #e0e0e0, stop: 0.1 #60ff60, stop: 0.5 #88ff88, stop: 1 #30ff30);

}

 

 

                                     

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FFmpeg有理数相关的源码:AVRational结构体和其相关的函数分析

一、引言 有理数是整数(正整数、0、负整数)和分数的统称,是整数和分数的集合。整数也可看作是分母是1的分数。不是有理数的实数称为无理数,即无理数的小数部分是无限不循环的数。 AVRational是FFmpeg源码中的一个结构体&#xf…

企业邮箱如何支持免费试用?

企业邮箱如何支持免费试用?Zoho企业邮箱提供多种版本,支持免费试用,具备权威认证、信息安全、全球部署等特点。试用步骤包括访问官网、选择版本、输入信息、验证域名等。特色功能包括定制化界面、搜索、日程安排等。支持多种设备和操作系统。…

linux内核:文件系统的组织(超级块,索引节点,目录项,文件对象)

在虚拟文件系统中抽象了4个对象:超级块、索引节点、目录项和文件对象。 超级块:存放描述文件系统的有关信息。每个文件系统都有自己的超级块,不同文件系统的超级块不同。文件系统的超级块在文件系统安装时建立,在卸载时自动删除。…

【问题解决方案】npm install报错问题:npm ERR! - 多种解决方案,总有一种可以解决

文章目录 1.问题重述2.解决方案方案1.确认根目录正确方案2.确认文件名正确方案3. 确认node.js安装完成(注意这个环境变量配置没有写完)方案4 改用yarn安装(亲测可用) 3.延申问题解决方案问题1:需要低版本的node.js 写在…

【计算机毕业设计】727网上拍卖系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【ArcGIS+CityEngine】自行制作Lod1城市大尺度白膜数据

数据准备 50多个城市建筑矢量数据 链接:https://pan.baidu.com/s/1FiwTfXDwQ6tMDRACAwUZwQ 提取码:DYSK 数据分析 数据属性Floor,为建筑物楼层信息,据此信息下面将在CityEngine软件生成Lod1白膜数据。 软件准备 CityEngi…

MMPV+MMRV 打开物料账期

开物料账期:MMPV 查看物料账期:MMRV 可以看到当前期间和上一期间。 允许过账到上一期间:过账日期可以改到上一月。 物料账期只能一个月一个月的开,不能跨月开。最多打开两个月。 财务账期OB52

Introduction to Data Analysis with PySpark

1.DataFrame and RDDs 2.Spark Architecture 3. Data Formats and Data Sources 倘若您觉得我写的好,那么请您动动你的小手粉一下我,你的小小鼓励会带来更大的动力。Thanks.

【组合数学】【Python】【小练习】一、斯特灵近似式求阶乘

一、问题介绍 斯特灵(Stirling)近似式,是数学分析中,用于求阶乘近似值的一个常用公式,其简单的表述形式为: 二、Python实现 使用Python,循环从n1至n98,分别输出n的阶乘值、斯特灵公…

在 Debian Bookworm XFCE4 桌面环境中安装原生版 微信

絮絮叨叨: 最近在做一个POC验证,为了启用足够多的虚拟机集群,把自己办公 Debian 重装了,装成了XFCE4桌面环境,需要在这个桌面环境上安装常用的办公与会议工具,既满足POC验证环境所需、又不耽误办公写文档 …

超好用的图片批量处理工具,电商人都在用!你还不知道?

作为一名电商运营人或者经常和图片打交道的小伙伴,是不是经常被大量图片的处理工作搞得焦头烂额?今天我必须给大家分享一个超级实用的宝贝工具——图片批量处理神器! 神器介绍👇 千鹿设计助手,是一款轻量级、功能非常…

如何应对,AI发展带来的就业挑战和机遇?

机遇与挑战并存 AI Job Impact AI时代的就业挑战 随着AI技术的飞速发展,它对全球就业市场产生了深远影响。一方面,一些传统职位正逐渐被自动化取代;另一方面,AI也创造了大量新兴职位。面对这一变革,我们需积极适应&…

【Python实战因果推断】69_图因果模型4

目录 Querying a Graph in Python Querying a Graph in Python 在接下来的时刻,你将把这个图输入到一个Python库中,这将使得回答关于它的问题变得相当容易。但在你这样做之前,作为一项练习,为了更好地理解你刚刚学到的概念&#x…

(七)Appdesigner-初步入门及常用组件的使用方法说明

目录 前言 一、Appsesigner初步入门 (一)Appsesigner简介 (二)功能布局 二、常用组件 (一)基础知识 (二)实际操作 1.HTML 2.下拉框 3.切换按钮组 4.列表框 5.单选按钮组…

ShardingSphere实战(4)- 广播表和默认数据源

上篇博客,我们讲了 ShardingSphere实战(3)- 快速实现分库分表 ,这篇博客,我们解决分库分表以后遗留的两个小问题。 一、广播表 1. 广播表介绍 广播表(Broadcast Table)是一种特殊的表类型&am…

SSM学习10:整合MyBatis、MyBatisPlus

SpringBoot整合MyBatis 与创建spring web项目类型,添加上相应依赖 实体类 public class Account {private int id;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String …

word打印---doc转html后进行打印,window.print、print-js、vue-print-nb

提示&#xff1a;word预览方式—插件 文章目录 [TOC](文章目录) 前言一、vue-office-docx把docx转换html二、调取window.print三、print-js四、vue-print-nb总结 前言 word预览 一、vue-office-docx把docx转换html npm install vue-office-docx -S-DofficeDocx.vue <templ…

Meta发布最新图形分割模型SAM 2:实时视频分割性能大幅提升

Meta发布最新图形分割模型SAM 2:实时视频分割性能大幅提升 在人工智能领域,图形分割是一项重要的技术,它能够识别和提取图像或视频中的目标对象。Meta近期发布的SAM 2(Segment Anything 2)模型在这一领域取得了重大突破。本文将详细介绍SAM 2的创新之处及其在视频对象实时…

vue3学习day02-组合式API-setup选项、reactive(将非响应式数据变为响应式数据)、computed(基本思想和vue2一致)、watch

6、setup选项 &#xff08;1&#xff09;setup选项的执行时机&#xff08;获取不到this&#xff0c;this是undefined&#xff09;&#xff1a;beforeCreate函数之前&#xff0c;自动执行 &#xff08;2&#xff09;写法 1&#xff09;原始写法 需要返回 ①在script中导出s…

【DeepSeek-V2 技术要点介绍】

DeepSeek-V2 是一款基于 Transformer 架构的先进模型&#xff0c;其中每个Transformer块由一个注意力模块和一个前馈网络&#xff08;FFN)组成。然而&#xff0c;对于注意力模块和 FFN&#xff0c;研究团队设计并采用了创新的架构。旨在通过创新的设计提升推理和训练效率。以下…