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

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.xdnf.cn/news/6985.html

相关文章:

  • Java-反射(Reflection)
  • Power BI Desktop开发——矩阵相关操作
  • 智慧校园(含实验室)智能化专项汇报方案
  • 精益数据分析(64/126):移情阶段的用户触达策略——从社交平台到精准访谈
  • 在Solana上使用 Scaled UI Amount 扩展
  • 机器学习回归预测中预处理的特征工程
  • 如何根据竞价数据判断竞价强度,是否抢筹等
  • 从零开始:使用 PyTorch 构建深度学习网络
  • WebXR教学 09 项目7 使用python从0搭建一个简易个人博客
  • BiliTools v1.3.7 哔哩哔哩工具箱
  • chrome 浏览器插件 myTools, 日常小工具。
  • FreeCAD源码分析: Transaction实现原理
  • 基于51单片机温控风扇—PWM调速、2挡、数码管显示
  • TCP/UDP协议原理和区别 笔记
  • Postman遇到脚本不支持replaceIn函数
  • Cookie、Session、Token
  • 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
  • 灵光一现的问题和常见错误2
  • C语言:在 Win 10 上,g++ 如何编译 gtk 应用程序
  • Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
  • cursor/vscode启动项目connect ETIMEDOUT 127.0.0.1:xx
  • 鸿蒙ArkUI体验:Hexo博客客户端开发心得
  • JVM 调优实战入门:从 GC 日志分析到参数调优
  • 基于requests_html的python爬虫
  • Redis——缓存雪崩、击穿、穿透
  • 内容安全:使用开源框架Caffe实现上传图片进行敏感内容识别
  • HMDB51数据集划分
  • V 型不锈钢对夹球阀:高性价比流体控制的优选方案-耀圣
  • 联想笔记本黑屏了,排线出问题还是静电
  • QT调用Halcon查询所有摄像头名称