QColorDialog简介
QColorDialog控件是一个常用的颜色选择对话框,继承自QDialog,是Qt内建的标准对话框之一。当程序中需要设置某一控件或控件外字体颜色时,我们使用该控件,对颜色进行选择、设置。
颜色对话框界面有以下几种功能:
- 从基础颜色中选择需要的颜色;
- 从色谱图中选择所需颜色;
- 将喜欢的颜色添加到常用颜色中;
- 使用取色器在屏幕上取色;
- 微调三原色数值。
QColorDialog常用方法有:
- getColor(): 打开一个颜色选择对话框,如果点击‘确定’或等效按钮,返回选取的颜色,否则返回Q ColorDialog缺省颜色;
- currentColor(): 返回当前颜色值;
- selectedColor(): 返回已选颜色值;
- setCurrentColor(): 设置当前颜色值;
- setCustomColor(): 设置用户自定义颜色;
- customColor(): 返回自定义颜色。
QColorDialog常用信号:
- currentColorChanged(): 当前颜色改变时发射该信号;
- colorSelected(): 颜色最终被选择时发射该信号;
QColorDialog类继承关系:

测试QColorDialog
创建文件qcolordialog.py,通过颜色选择对话框选择相应颜色,将颜色的效果显示在一个QLabel标签页的文本上,完整代码如下:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPalette
from PyQt5.QtWidgets import (QApplication, QWidget, QLabel,
QPushButton, QColorDialog, QVBoxLayout)
class DemoColorDialog(QWidget):
def __init__(self, parent=None):
super(DemoColorDialog, self).__init__(parent)
# 设置窗口标题
self.setWindowTitle('实战PyQt5: QColorDialog Demo!')
# 设置窗口大小
self.resize(360, 240)
self.initUi()
def initUi(self):
vLayout = QVBoxLayout(self)
vLayout.addSpacing(10)
btnTest = QPushButton('调整颜色', self)
btnTest.clicked.connect(self.onSetFont)
self.label_text = QLabel('实战PyQt5: \n测试QColorDialog')
self.label_text.setAlignment(Qt.AlignCenter)
self.label_text.setFont(QtGui.QFont(self.font().family(), 16))
vLayout.addWidget(btnTest)
vLayout.addWidget(self.label_text)
self.setLayout(vLayout)
def onSetFont(self):
col = QColorDialog.getColor()
pal = self.label_text.palette()
pal.setColor(QPalette.WindowText, col)
self.label_text.setPalette(pal)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DemoColorDialog()
window.show()
sys.exit(app.exec())
运行结果如下图:
测试QColorDialog
本文知识点
- 使用QColorDialog选择颜色;
- QColorDialog对话框功能区域;
- 使用QPalette方式改变QLabel上文本的颜色。
前一篇: 实战PyQt5:058-字体选择对话框QFontDialog