当前位置: 首页 > 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 绘图、样式设置等场景。

相关文章:

  • 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的含义
  • 四大皆空!赛季还没结束,曼城已经吃上“散伙饭”了
  • 终于,俄罗斯和乌克兰谈上了
  • 韶关一企业将消防安装工程肢解发包,广东住建厅:罚款逾五万
  • 讲座预告|以危机为视角解读全球治理
  • 国税总局上海市税务局通报:收到王某对刘某某及相关企业涉税问题举报,正依法依规办理
  • 俄方代表团抵达土耳其,俄乌直接谈判有望于当地时间上午重启