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