实战PyQt5: 059-颜色对话框QColorDialog

本文介绍了QColorDialog在PyQt5中的应用,它是一个颜色选择对话框,用于设置字体或控件颜色。QColorDialog提供了基础颜色选择、色谱选择、自定义颜色等功能,并可以通过QPalette改变QLabel文本颜色。示例代码展示了如何通过QColorDialog选择颜色并实时显示在QLabel上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QColorDialog简介

QColorDialog控件是一个常用的颜色选择对话框,继承自QDialog,是Qt内建的标准对话框之一。当程序中需要设置某一控件或控件外字体颜色时,我们使用该控件,对颜色进行选择、设置。

颜色对话框界面有以下几种功能:

  • 从基础颜色中选择需要的颜色;
  • 从色谱图中选择所需颜色;
  • 将喜欢的颜色添加到常用颜色中;
  • 使用取色器在屏幕上取色;
  • 微调三原色数值。

QColorDialog常用方法有:

  • getColor(): 打开一个颜色选择对话框,如果点击‘确定’或等效按钮,返回选取的颜色,否则返回Q ColorDialog缺省颜色;
  • currentColor(): 返回当前颜色值;
  • selectedColor(): 返回已选颜色值;
  • setCurrentColor(): 设置当前颜色值;
  • setCustomColor(): 设置用户自定义颜色;
  • customColor(): 返回自定义颜色。

QColorDialog常用信号:

  • currentColorChanged(): 当前颜色改变时发射该信号;
  • colorSelected(): 颜色最终被选择时发射该信号;

QColorDialog类继承关系:

实战PyQt5: 059-颜色对话框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())

运行结果如下图:

实战PyQt5: 059-颜色对话框QColorDialog

测试QColorDialog

本文知识点

  • 使用QColorDialog选择颜色;
  • QColorDialog对话框功能区域;
  • 使用QPalette方式改变QLabel上文本的颜色。

前一篇:  实战PyQt5:058-字体选择对话框QFontDialog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值