当前位置: 首页 > news >正文

Qt 样式与 QLinearGradient 渐变详解

日期:2025-12-10
分类:Qt / C++ / 界面美化
标签:QLinearGradient、Qt样式表、QSS、渐变效果


🌈 一、QLinearGradient 是什么?

Qt 中,QLinearGradient 是用于绘制 线性渐变(Linear Gradient) 的类。
它可以让颜色沿一条直线平滑过渡,常用于:

  • 自定义控件绘图(通过 QPainter
  • Qt 样式表(QSS)背景渐变
  • 绘制按钮、标题栏、图表等 UI 效果

🧱 二、基本原理

线性渐变由以下部分组成:

  • 起点 (start):渐变开始的坐标
  • 终点 (end):渐变结束的坐标
  • 颜色停靠点 (color stop):颜色变化的位置(0.0~1.0)

颜色在这些停靠点之间平滑过渡。


🎨 三、QPainter 中使用示例

#include <QPainter>
#include <QLinearGradient>void MyWidget::paintEvent(QPaintEvent *) {QPainter painter(this);// 创建渐变:从左上角到右下角QLinearGradient gradient(0, 0, width(), height());// 定义颜色停靠点gradient.setColorAt(0.0, Qt::red);gradient.setColorAt(0.5, Qt::yellow);gradient.setColorAt(1.0, Qt::green);// 应用渐变画刷painter.setBrush(gradient);painter.setPen(Qt::NoPen);painter.drawRect(rect());
}

🧩 参数说明

方法 说明
QLinearGradient(x1, y1, x2, y2) 起点与终点坐标
setColorAt(pos, color) 设置渐变颜色(pos ∈ [0,1])
setSpread(QGradient::Spread) 设置超出区域的填充模式

🪄 四、Spread 模式

控制渐变在边界外的延伸方式:

模式 效果说明
PadSpread(默认) 使用最后一个颜色填充外部区域
RepeatSpread 重复整个渐变
ReflectSpread 反射式重复渐变

示例:

gradient.setSpread(QGradient::ReflectSpread);

🧁 五、QSS(样式表)中的线性渐变

Qt 样式表支持直接使用 qlineargradient() 定义背景:

QPushButton {border: 1px solid #888;border-radius: 6px;color: white;background: qlineargradient(x1:0, y1:0, x2:0, y2:1,       /* 从上到下 */stop:0 #4A90E2,               /* 顶部颜色 */stop:0.5 #357ABD,             /* 中间颜色 */stop:1 #2C5AA0                /* 底部颜色 */);
}

📐 坐标说明

参数 说明
x1, y1 渐变起点(相对控件)
x2, y2 渐变终点(相对控件)
stop 渐变停靠点及颜色

例如:

  • x1:0, y1:0, x2:0, y2:1 → 垂直渐变
  • x1:0, y1:0, x2:1, y2:0 → 水平渐变

💡 六、QSS 动态效果示例

按钮悬停时渐变变化:

QPushButton {color: white;border-radius: 5px;background: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #6EA3F2, stop:1 #2E6BD1);
}QPushButton:hover {background: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #7FB6FF, stop:1 #3B82F6);
}

🧠 七、与透明度结合使用

可使用带透明度的 QColor 生成光泽或阴影:

gradient.setColorAt(0, QColor(255, 255, 255, 180));
gradient.setColorAt(1, QColor(0, 0, 0, 80));

效果:上亮下暗,常用于立体按钮、气泡、卡片等。


🧩 八、其他渐变类型对比

类型 特点
QLinearGradient 线性渐变 沿直线方向变化
QRadialGradient 放射渐变 从中心向外扩散
QConicalGradient 圆锥渐变 围绕中心旋转变化

🖼 九、渐变方向示意

方向 参数 效果
从上到下 x1:0, y1:0, x2:0, y2:1 垂直渐变
从左到右 x1:0, y1:0, x2:1, y2:0 水平渐变
左上 → 右下 x1:0, y1:0, x2:1, y2:1 对角线渐变

🚀 十、总结

  • QLinearGradient 可用于绘图和 QSS 样式美化。
  • 支持多颜色点、透明度、扩展模式。
  • 在 QSS 中可轻松实现渐变背景与交互效果。
  • 搭配动画可实现更动态的视觉体验。

💬 小结:
掌握 QLinearGradient,你就能轻松为 Qt 程序增加色彩层次感和高品质视觉效果。

推荐阅读:

  • Qt 官方 QGradient 文档
  • Qt 样式表参考
http://www.jsqmd.com/news/70725/

相关文章:

  • PP滑石粉加工与定制:厂家选择攻略及优质推荐 - mypinpai
  • 2026北京涉外纠纷律师服务白皮书:靠谱律所机构口碑排名与专业解析 - 苏木2025
  • 【2025最新】qBittorrent 下载安装教程(增强版 EE 图文步骤 + 设置优化指南) - PC修复电脑医生
  • 2025年12月实验室规划设计公司推荐:迅领实验室——源头工厂资质全,三免服务更省心 - 深度智识库
  • 2025武汉新华电脑学校好不好?权威测评指南:5大互联网职教 - 工业推荐榜
  • 深入解析:ELK Stack核心原理与运用要点解析
  • 2025年离心喷雾干燥机生产厂家推荐榜单:喷雾干燥机‌/中药浸膏喷雾干燥机‌/高速离心喷雾干燥机源头厂家精选 - 品牌推荐官
  • 如何选择一家靠谱的新疆旅行社?2025年年终最新市场评测与5家实力机构推荐! - 十大品牌推荐
  • 互感器综合测试仪/智能互感器伏安特性测试仪哪个品牌好?哪家好?源头厂家推荐 - 品牌推荐大师1
  • Apache 服务器 通俗解读:撑起无数网站的 “开源老大哥”
  • 2025年智能真空度测试仪/高精度真空度测试仪生产商|推荐厂家|源头厂家 - 品牌推荐大师1
  • 2025年年终刷宝游戏推荐:多平台横评与实测体验,聚焦不同用户偏好的5款优质游戏选购指南 - 十大品牌推荐
  • SSE图像算法优化系列三十三:使用_mm_stream_si128加速 Memory-Bound(内存受限)类算法的执行速度,为其他算法提供更为基础的效率保障。
  • 2025年12月国内智能体公司综合评测榜:聚焦私有化部署和定制的深度推荐 - 品牌推荐官优选
  • 2025年度高粱酒酿酒技术培训机构TOP5,看哪家培训专业? - 工业推荐榜
  • 2025年年终刷宝游戏推荐:聚焦ARPG与暗黑like品类,专家严选5款优质案例可靠性横评 - 十大品牌推荐
  • 2025家用猛火燃气灶供应企业TOP5权威推荐:专业加工厂甄 - myqiye
  • 2025年纸托盘实力厂家推荐榜单:仓储物流托盘‌/木托盘‌/免熏蒸托盘源头厂家精选 - 品牌推荐官
  • 【节点】[Adjustment-ChannelMixer节点]原理解析与实际应用
  • 2025年年终人形机器人场景落地商盘点:聚焦赛飞特工程技术集团的深度解析与推荐 - 十大品牌推荐
  • 2025年12月成都排臭蹲便器/防堵卫浴/蹲便器/高端卫浴公司推荐 - 2025年11月品牌推荐榜
  • 2025年台式XAFS推荐生产厂家,台式XAFS行业标杆企业 - 品牌推荐大师
  • 2025年12月国产微波马弗炉价格对比/生产商/代理商/知名品牌/推荐品牌/供应商 - 品牌推荐大师
  • 2025年年终暗黑游戏推荐:从经典IP到独立新秀全方位盘点,5款高可靠性作品清单 - 品牌推荐
  • 2025年年终副业平台推荐:基于多平台真实用户案例与收益数据深度解析的5款高可靠性选择 - 十大品牌推荐
  • 2025年中国隔音房安装公司推荐:隔音房生产商哪家好? - 工业品牌热点
  • 2025年中国隔音房安装公司推荐:隔音房生产商哪家好? - 工业品牌热点
  • 235. Java 集合 - 深入理解 Collection 扩展 —— List 接口 - 指南
  • 2025 年纸碗机、机厂家一站式真相:从超声波纸杯机、杯盖机到纸盘机的制造与售后全解析 - 品牌2026
  • 2025 年纸杯机、制杯机实力厂家推荐:全伺服、超声波、纸咖啡杯机、杯盖机、纸碗机、纸盘机制造商全覆盖 - 品牌2026