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

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类颜色QColor)

文章目录

    • 一、概述
    • 二、核心功能
    • 三、常用函数及方法
    • 四、代码示例
    • 五、注意事项

一、概述

QColor 是用于处理颜色的类,支持 RGB、HSV、HSL、CMYK 等多种颜色模型,提供颜色创建、转换、分量操作及格式转换功能。支持透明度设置,可通过颜色名称或十六进制字符串定义颜色。

该类的说明详见文档:PySide6.QtGui.QColor


二、核心功能

类别功能描述
颜色模型支持 RGB(A)、HSV、HSL、CMYK、Extended RGB 模型
创建方式通过分量值、颜色名称、十六进制字符串、静态工厂方法(如 fromRgb())创建
颜色转换提供 toHsv()、toCmyk() 等方法在不同模型间转换
分量操作获取/设置各颜色分量(如 red(), setAlpha())
工具方法调整明暗(lighter(), darker())、检查有效性(isValid())、获取字符串名称

三、常用函数及方法

方法/函数功能描述Python 示例
构造函数
QColor(r, g, b[, a=255])通过 RGB(A) 整数值创建颜色(0-255)color = QColor(255, 0, 0, 127) # 半透明红色
QColor("#RRGGBB")通过十六进制字符串创建颜色color = QColor("#FF0000") # 红色
QColor("colorname")通过 SVG 颜色名称创建(如 “red”, “blue”)color = QColor("steelblue")
静态工厂方法
QColor.fromRgb(r, g, b[, a=255])从 RGB 整数值创建color = QColor.fromRgb(0, 255, 0) # 绿色
QColor.fromHsv(h, s, v[, a=255])从 HSV 整数值创建(h:0-359, s/v:0-255)color = QColor.fromHsv(240, 255, 255) # 蓝色
QColor.fromCmyk(c, m, y, k[, a=255])从 CMYK 整数值创建color = QColor.fromCmyk(255, 0, 0, 0) # 青色
颜色分量获取
red()/green()/blue()/alpha()返回 RGB 分量(0-255)r = color.red()
getRgb()返回元组 (r, g, b, a)r, g, b, a = color.getRgb()
hue()/saturation()/value()返回 HSV 分量(h:0-359, s/v:0-255)h = color.hue()
颜色分量设置
setRed(r)/setGreen(g)/setBlue(b)设置 RGB 分量(0-255)color.setRed(128)
setAlpha(a)设置透明度(0-255, 0=全透明)color.setAlpha(127) # 半透明
setRgb(r, g, b[, a=255])同时设置 RGB(A) 分量color.setRgb(255, 200, 0)
颜色转换
toRgb()/toHsv()/toCmyk()转换为指定颜色模型的新 QColor 对象hsv_color = color.toHsv()
工具方法
lighter(factor=150)返回更亮的颜色(factor>100)light_red = QColor("red").lighter(200)
darker(factor=200)返回更暗的颜色(factor>100)dark_blue = QColor("blue").darker(300)
name(format=HexRgb)返回颜色字符串(如 “#FF0000”)hex_str = color.name(QColor.HexArgb) # 带透明度的十六进制
isValid()检查颜色是否合法if color.isValid(): print("Valid color")

四、代码示例

from PySide6.QtGui import QColor# 创建颜色对象
color1 = QColor(255, 0, 0)          # 红色 (RGB)
color2 = QColor("#00FF00")          # 绿色 (十六进制)
color3 = QColor.fromHsv(180, 255, 255)  # 青色 (HSV)# 获取颜色分量
r, g, b, a = color1.getRgb()
print(f"RGB: {r}, {g}, {b}, Alpha: {a}")  # 输出: RGB: 255, 0, 0, Alpha: 255# 设置透明度
color1.setAlpha(127)
print(color1.alpha())  # 输出: 127# 转换为 CMYK
cmyk_color = color1.toCmyk()
c, m, y, k, a = cmyk_color.getCmyk()
print(f"CMYK: {c}, {m}, {y}, {k}")  # 近似值# 调整颜色亮度
darker_color = color2.darker(200)
lighter_color = color3.lighter(150)# 检查有效性
invalid_color = QColor()
print(invalid_color.isValid())  # 输出: False

输出结果:
代码输出结果


五、注意事项

  1. 颜色模型精度:整数方法范围通常为 0-255,浮点方法为 0.0-1.0。
  2. 颜色名称:需使用 SVG 1.0 标准名称(如 “aqua” 而非 “cyan”)。
  3. 无效颜色:默认构造的 QColor 无效,需通过合法参数初始化。
  4. 性能:直接操作分量比转换模型更高效。

通过 QColor 可灵活处理颜色需求,适用于 GUI 绘图、样式设置等场景。

http://www.dtcms.com/a/196999.html

相关文章:

  • Canva 推出自有应用生成器以与 Bolt 和 Lovable 竞争
  • 第8讲、Multi-Head Attention 的核心机制与实现细节
  • 【电路笔记 STM32】 STM32CubeProgrammer 下载 安装 使用
  • NY309NY318美光科技颗粒NY319NY320
  • AI大模型(一)embedding模型的基础使用
  • Spark缓存-persist和cache方法
  • 前端-HTML元素
  • Raft 协议:分布式一致性算法的核心思想
  • 电动调节 V 型球阀:工业流体控制的全能解决方案-耀圣
  • HTTP与HTTPS协议的核心区别
  • 通过多线程获取VENC的H264码流数据
  • 刷leetcodehot100返航版--二叉树
  • 计算机视觉与深度学习 | Python实现EMD-SSA-VMD-LSTM时间序列预测(完整源码和数据)
  • Day12-苍穹外卖(完结篇)
  • ctfshow——web入门254~258
  • 98. 验证二叉搜索树
  • 如何优化关键词长度:2025年SEO实用指南
  • 软件设计师考试《综合知识》创建型设计模式考点分析
  • SAP HCM 0008数据存储逻辑
  • 电池的充放电电流中C的含义
  • 【SpringBoot】关于MP使用中配置了数据库表前缀的问题
  • 在宝塔中使用.NET环境管理部署 .NET Core项目
  • 生产级编排AI工作流套件:Flyte全面使用指南 — Development cycle
  • mysql中limit深度分页详细剖析【爽文】
  • 架构师论文《论模型驱动架构软件开发方法及其应用》
  • 【软件测试】性能测试 —— 工具篇 LoadRunner 介绍与使用
  • Ansible模块——服务管理和设置定时任务
  • 一字典两世界:优雅移除 `NSDictionary` 指定键的最佳实践
  • 腾讯 CodeBuddy 杀入 AI 编程赛道,能否撼动海外工具霸主地位?
  • C++类与对象--2 对象的初始化和清理