📜  PyQt5 QColorDialog – 设置自定义颜色(1)

📅  最后修改于: 2023-12-03 15:33:52.729000             🧑  作者: Mango

PyQt5 QColorDialog – 设置自定义颜色

在 PyQt5 中,QColorDialog 类提供了一种快速可靠的方法来获取颜色值。而其中,设置自定义颜色需要通过 QColorDialog.setCustomColor(int, QColor) 方法来实现。

语法
QColorDialog.setCustomColor(int, QColor)

setCustomColor() 方法有两个参数,一个是自定义颜色的索引,另一个是自定义颜色值 Qcolor。

示例
from PyQt5.QtWidgets import QApplication, QColorDialog, QVBoxLayout, QPushButton, QWidget
from PyQt5.QtGui import QColor

class ColorDialog(QWidget):
    
    def __init__(self):
        super(ColorDialog, self).__init__()
        
        vbox = QVBoxLayout(self)
        self.btn = QPushButton("Open Color Dialog", self)
        self.btn.clicked.connect(self.open_dialog)
        vbox.addWidget(self.btn)
        
    def open_dialog(self):
        color = QColorDialog.getColor()
        
        if color.isValid():
            print(color)
            print(color.name())
            
            for i in range(16):
                self.btn.setStyleSheet("border: 2px solid black; background-color: %s" % QColorDialog.customColor(i).name())
                self.btn.setStyleSheet("border: 2px solid black; background-color: %s" % color.name())
        
if __name__ == '__main__':
    app = QApplication([])
    dialog = ColorDialog()
    dialog.show()
    app.exec_()

在上面的例子中,我们创建了一个 QPushButton 并绑定一个事件处理函数 open_dialog。该函数使用 QColorDialog.getColor() 方法来选择颜色,同时使用 QColorDialog.setCustomColor 方法来设置自定义的颜色。

在颜色选择后,我们使用 QPushButton.setStyleSheet() 方法来设置按钮的背景颜色。

输出结果

当我们运行程序,点击按钮弹出颜色选择器,选择颜色后,在输出面板中选择的颜色将被显示和输出,而在按钮的背景颜色部分,将呈现所选择的颜色。

结尾

在这篇文章中,我们介绍了如何在 PyQt5 中设置自定义颜色,以及如何获取用户选择的颜色。

通过学习 QColorDialog,我们可以快速实现一个可靠颜色选择器的功能,这对于很多需要进行颜色定制功能的应用程序非常有用。