【QT】QLinearGradient 线性渐变类简单使用教程

目录

0.简介

1)qtDesigner中

2)实际执行

1.功能详述

3.举一反三的样式


0.简介

QLinearGradient 是 Qt 框架中的一个类,用于定义线性渐变效果(通过样式表设置)。它可以用来填充形状、背景或其他图形元素,创建从一个颜色到另一个颜色的平滑过渡效果。

先看下实现效果(我用了一个label控件承接,一个从浅灰到深灰的渐变,带50的圆角)

1)qtDesigner中

2)实际执行

想要彩色?满足你

1.功能详述

1)首先我们看下用样式是如何设置的(以下均已彩色图的颜色为准)

ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue);""border-radius:50px;");

重点就是这一句代码,设置样式。

通过给label设置一个背景颜色,再加一个border-radius的圆角即可实现,重点是qlineargradient的参数,我们来分析下:

qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue)

别看参数这么多,分组看就好了,一共有5个组:

a)起始点坐标(x1,y1)

b)结束点坐标(x2,y2)

c)起始点颜色和开始点(stop:0.0 red)

d)中间段颜色和中间点(stop:0.5 green)

e)结束点颜色和结束点(stop:1 blue)

(参考图)

参数含义

qlineargradient(...)

设置背景为线性渐变
x1:1, y1:0(x1,y1要一起看)

渐变起点的坐标(看上面的参考图中的红色坐标,仅看四个点坐标)

也就是颜色从(1,0)开始,也就是右上角

  • x1:1 表示起点的水平位置为 1(相对于元素的宽度,1 表示最右侧)

  • y1:0 表示起点的垂直位置为 0(相对于元素的高度,0 表示最顶部)

x2:0, y2:1(x2,y2要一起看)

渐变终点的坐标(看上面的参考图的红色坐标)

也就是颜色到(0,1)结束,也就是左下角

  • x2:0 表示终点的水平位置为 0(最左侧)

  • y2:1 表示终点的垂直位置为 1(最底部)

stop:0.0 red

在渐变线的起点(位置 0.0)设置颜色为红色,参考上图的橙色数字位置

stop:0.5 green

在渐变线的中间点(位置 0.5)设置颜色为绿色,参考上图的橙色数字位置

stop:1 blue

在渐变线的终点(位置 1.0)设置颜色为蓝色,参考上图的橙色数字位置

也就是先看起点终点,再看颜色。

如上述代码样式可简述为:从右上到左下,分别是红、绿、蓝三个颜色。

3.举一反三的样式

1)如果要调换开始和结束的颜色(红蓝调换),有两种方式:

        i)调换起始点:

        (x1,y1),原(1,0)变为(0,1)+ (x2,y2),原(0,1)变为(1,0)

        ii)调换起点(red)和终点(blue)的颜色

2)我想让红色少一点

第二段stop的值少一点,意思是绿色的中心点是0.2

//    ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue);"ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.2 green, stop:1 blue);""border-radius:50px;");

3)如果我只想要两个颜色,不想要中间的绿色了

去掉第二段stop参数(, stop:0.5 green)即可

//    ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red, stop:0.5 green, stop:1 blue);"ui->label->setStyleSheet("background:qlineargradient(x1:1, y1:0, x2:0, y2:1, stop:0.0 red,stop:1 blue);""border-radius:50px;");

大家可自行发挥想象力,可以创造出很多样式

--END--

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

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

相关文章

前端项目配置 Nginx 全攻略

在前端开发中,项目开发完成后,如何高效、稳定地将其部署到生产环境是至关重要的一步。Nginx 作为一款轻量级、高性能的 Web 服务器和反向代理服务器,凭借其出色的性能和丰富的功能,成为了前端项目部署的首选方案。本文将详细介绍在…

网络安全学习-常见web漏洞的渗xxx透以及防护方法

渗XX透测试 弱口令漏洞 漏洞描述 目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。 渗XX透测试 如果不存在验证码,则直接使用相对应的弱口令字典使用burpsuite 进行爆破如果存在验证…

网络安全 机器学习算法 计算机网络安全机制

(一)网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型: 自主访问控制强制访问控制 访问控制措施: 入…

2025网络安全等级测评报告,信息安全风险评估报告(Word模板)

一、概述 1.1工作方法 1.2评估依据 1.3评估范围 1.4评估方法 1.5基本信息 二、资产分析 2.1 信息资产识别概述 2.2 信息资产识别 三、评估说明 3.1无线网络安全检查项目评估 3.2无线网络与系统安全评估 3.3 ip管理与补丁管理 3.4防火墙 四、威胁细类分析 4.1威胁…

Ubuntu22.04系统安装Anaconda、CUDA和CUDNN

之前一直在Windows系统下使用Anaconda和CUDA加速,最近需要复现一个算法,文档里面有Linux系统conda构建环境的教程。 本篇博文参考博文,记录自己安装的过程,便于以后需要。 目录 1.Anaconda1.1 安装包下载1.2 安装软件1.3 更新cond…

微信小程序调用火山方舟(字节跳动火山引擎)中的DeepSeek大模型

一、注册火山引擎账号,创建API Key和model(接入点ID) 1.注册并登陆火山引擎账号,网址为:https://console.volcengine.com/ 2.根据登陆后的页面提示进行实名认证,实名认证后才能创建API Keyt和创建接入点。…

蓝桥杯之日期题

文章目录 1.蓝桥杯必备知识点2. 题型13.需求2 1.蓝桥杯必备知识点 蓝桥杯是一个面向全国高校计算机相关专业学生的学科竞赛,涵盖多个赛道,常见的有软件类(如 C/C 程序设计、Java 软件开发、Python 程序设计)和电子类(…

muduo网络库2

Muduo网络库:底层实质上为Linux的epoll pthread线程池,且依赖boost库。 muduo的网络设计核心为一个线程一个事件循环,有一个main Reactor负载accept连接,然后把连接分发到某个sub Reactor(采用轮询的方式来选择sub Reactor)&…

WinSCP 连接到 Ubuntu 虚拟机

要使用 WinSCP 连接到 Ubuntu 虚拟机,一般采用 SFTP 或 SCP 协议进行文件传输。以下是详细步骤: 1. 确保虚拟机网络可访问 首先,你的 Ubuntu 虚拟机需要允许外部访问: 如果使用 NAT 网络:需要设置端口转发&#xff0…

redis小记

redis小记 下载redis sudo apt-get install redis-server redis基本命令 ubuntu16下的redis没有protected-mode属性,就算sudo启动,也不能往/var/spool/cron/crontabs写计划任务,感觉很安全 #连接到redis redis-cli -h 127.0.0.1 -p 6379 …

Docker核心概念

容器介绍 Docker 是世界领先的软件容器平台,所以想要搞懂 Docker 的概念我们必须先从容器开始说起。 什么是容器? 先来看看容器较为官方的解释 一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量…

阿里云可观测全面拥抱 OpenTelemetry 社区

作者:古琦 在云计算、微服务、容器化等技术重塑 IT 架构的今天,系统复杂度呈指数级增长。在此背景下,开源可观测性技术已从辅助工具演变为现代 IT 系统的"数字神经系统",为企业提供故障预警、性能优化和成本治理的全方…

2025年2月科技热点深度解析:AI竞赛、量子突破与开源革命

引言 2025年的科技领域持续呈现爆发式增长,AI大模型竞争白热化、量子计算商业化加速、开源工具生态繁荣成为本月最受关注的议题。本文结合最新行业动态,从技术突破、商业布局到开发者生态,全面解析当前科技热点,为读者提供深度洞…

idea创建第一个springboot程序

说明: 我计划用idea,创建第一个springboot程序,但是作为新手完全不会弄,今天我就亲自尝试一边,并且出一期详细,完美的教程,亲测可以运行 step1. 点击file , 选new, 选…

半导体芯片制造中 W CVD(钨化学气相沉积)

半导体芯片制造中 W CVD(钨化学气相沉积) 的 Nucleation 解析 在钨(W)化学气相沉积(CVD)工艺中,Nucleation(成核) 是沉积过程的初始阶段,指钨原子或分子在基…

Three.js 入门(辅助、位移、父子关系、缩放旋转、响应式布局)

本篇主要学习内容 : 三维坐标系与辅助坐标系物体位移与父子元素物体的缩放与物体的旋转设置响应式画布与全屏控制 点赞 关注 收藏 学会了 本文使用 Three.js 的版本:171 基于 Vue3vite开发调试 1.三维坐标系与辅助坐标系 1.1) 导入three和轨道控制器 // 导入…

一键导出数据库表到Excel

工作中,我们经常需要将数据库表导出到Excel,通常我们会用数据库编辑器之类的工具提供的导出功能来导出,但是它们的导出功能通常都比较简单。 这篇文章将介绍一种简单易用并且功能强大的导出方法。 新增导出 打开的卢导表工具,新…

CSS滚动条原理与自定义样式指南,CSS滚动条样式失效,滚动条样式无效,-webkit-scrollbar无效,overflow不显示滚动条

滚动内容形成的必要条件 CSS Overflow属性解析 MDN官方文档-Overflow属性 菜鸟教程-Overflow属性 overflow 属性控制内容溢出元素框时在对应的元素区间内是否添加滚动条。 值描述visible默认值。内容不会被修剪,会呈现在元素框之外。hidden内容会被修剪&#xf…

【LLM】本地部署LLM大语言模型+可视化交互聊天,附常见本地部署硬件要求(以Ollama+OpenWebUI部署DeepSeekR1为例)

【LLM】本地部署LLM大语言模型可视化交互聊天,附常见本地部署硬件要求(以OllamaOpenWebUI部署DeepSeekR1为例) 文章目录 1、本地部署LLM(以Ollama为例)2、本地LLM交互界面(以OpenWebUI为例)3、本…

温湿度监控设备融入智慧物联网

当医院的温湿度监控设备融入智慧物联网,将会带来许多新的体验,可以帮助医院温湿度监控设备智能化管理,实现设备之间的互联互通,方便医院对温湿度数据进行统一管理和分析。 添加智慧物联网技术,实现对医院温湿度的实时…