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

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

文章目录

    • 一、概述
    • 二、颜色常量表
      • 标准 Qt 颜色
      • SVG 颜色(部分)
    • 三、Python 代码示例
    • 四、代码说明
    • 五、版本兼容性
    • 六、延伸阅读

一、概述

QColorConstants 是 Qt for Python 提供的一个预定义颜色常量集合,包含标准Qt颜色和SVG规范颜色。这些常量可直接替代 QColor 对象,无需解析字符串,性能更优且保证有效性。

该类的详细描述见官方文档:QColorConstants

优势

• 高性能:直接使用内存常量,避免字符串解析开销

• 类型安全:始终返回有效 QColor 对象

• 代码简洁:语义化常量名提高可读性


二、颜色常量表

标准 Qt 颜色

常量名十六进制值颜色预览
Black#000000
White#ffffff
Red#ff0000
DarkGreen#006400
Blue#0000ff
Transparent透明

SVG 颜色(部分)

常量名十六进制值颜色预览
Svg.lightblue#add8e6
Svg.coral#ff7f50
Svg.royalblue#4169e1
Svg.gold#ffd700
Svg.limegreen#32cd32

(完整列表包含140+颜色,可通过文档查询)


三、Python 代码示例

from PySide6.QtGui import QColorConstants, QPainter
from PySide6.QtWidgets import QApplication, QWidgetclass ExampleWidget(QWidget):def paintEvent(self, event):painter = QPainter(self)# 使用标准Qt颜色painter.setBrush(QColorConstants.Red)painter.drawRect(10, 10, 80, 80)# 使用SVG颜色painter.setBrush(QColorConstants.Svg.lightblue)painter.drawEllipse(100, 10, 80, 80)# 透明效果painter.setBrush(QColorConstants.Transparent)painter.drawRect(190, 10, 80, 80)if __name__ == "__main__":app = QApplication()window = ExampleWidget()window.show()app.exec()

代码运行效果

四、代码说明

  1. 导入模块:从 QtGui 导入颜色常量,从 QtWidgets 导入GUI组件
  2. 创建画刷:直接使用 QColorConstants.ConstName 格式访问颜色
  3. SVG颜色:通过 Svg 子命名空间访问SVG规范颜色
  4. 透明处理:使用特殊常量 Transparent 实现透明效果

五、版本兼容性

Qt 版本PySide6 版本支持状态
Qt 6.0+PySide6 6.0+✔️ 完全支持
Qt 5.xPySide2✖️ 不支持

六、延伸阅读

• 颜色混合:使用 QColor().lighter()/.darker() 方法生成渐变色

• 动态颜色:QPalette 类管理系统主题颜色

• CSS支持:qss 样式表可直接使用颜色名称(如 background: lightblue;

http://www.xdnf.cn/news/498601.html

相关文章:

  • JavaScript 中的 for...in 和 for...of 循环详解
  • 深入理解 TypeScript 中的 unknown 类型:安全处理未知数据的最佳实践
  • Qt Widgets模块功能详细说明,基本控件:QLabel(一)
  • 园区综合能源系统容量优化配置全流程解析:从业务逻辑到 MATLAB 实现
  • 计算机视觉与深度学习 | Matlab实现EMD-LSTM和LSTM时间序列预测对比(完整源码和数据)
  • 计算机视觉与深度学习 | Python实现EMD-SSA-VMD-LSTM-Attention时间序列预测(完整源码和数据)
  • C语言指针深入详解(一):内存和地址、指针变量和地址、指针变量类型的意义、指针运算
  • 2025.05.17淘天机考笔试真题第三题
  • Compose笔记(二十三)--多点触控
  • 1688 数据接口调用秘籍:高效获取商品实时信息的开发指南
  • Redis技术深度解析
  • Elasticsearch 查询与过滤(Query vs. Filter)面试题
  • Vue3(一)
  • 机器学习 KNN算法
  • 当硅基存在成为人性延伸的注脚:论情感科技重构社会联结的可能性
  • 震荡指标工具
  • 如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
  • Redis配置与优化:提升NoSQL数据库性能的关键策略
  • MinIO深度解析:从入门到实战——对象存储系统全指南
  • 智慧水务关键一环:Profinet转Modbus TCP网关驱动供水系统高效互联
  • 蓝牙耳机什么牌子好?倍思值得冲不?
  • 软件设计师考试《综合知识》创建型设计模式考点分析
  • NY309NY318美光科技颗粒NY319NY320
  • SVN 版本控制入门指南
  • 项目QT+ffmpeg+rtsp(二)——海康威视相机测试
  • 【学习心得】英伟达的诸多显卡性能对比
  • Scrapy进阶实践指南:从脚本运行到分布式爬取
  • 基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真
  • Linux面试题集合(3)
  • 二叉树进阶