文章目錄
- 一、概述
- 二、顏色常量表
- 標準 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()
四、代碼說明
- 導入模塊:從
QtGui
導入顏色常量,從QtWidgets
導入GUI組件 - 創建畫刷:直接使用
QColorConstants.ConstName
格式訪問顏色 - SVG顏色:通過
Svg
子命名空間訪問SVG規范顏色 - 透明處理:使用特殊常量
Transparent
實現透明效果
五、版本兼容性
Qt 版本 | PySide6 版本 | 支持狀態 |
---|---|---|
Qt 6.0+ | PySide6 6.0+ | ?? 完全支持 |
Qt 5.x | PySide2 | ?? 不支持 |
六、延伸閱讀
? 顏色混合:使用 QColor().lighter()/.darker()
方法生成漸變色
? 動態顏色:QPalette
類管理系統主題顏色
? CSS支持:qss
樣式表可直接使用顏色名稱(如 background: lightblue;
)