📜  PyQt5 QColorDialog – 为子按钮设置皮肤(1)

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

PyQt5 QColorDialog – 为子按钮设置皮肤

在PyQt5中,QColorDialog是一个用于选择颜色的标准对话框。它提供了一种简单的方法来选择一个颜色并返回所选颜色的值。在这个教程中,我们将学习如何为子按钮设置皮肤。

设置子按钮皮肤

我们可以使用setStyleSheet()方法为子按钮设置皮肤。下面的代码段演示了如何使用QColorDialog选择颜色,并为子按钮设置该颜色作为背景颜色。

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


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        col = QColor(0, 0, 0)

        self.btn = QPushButton('颜色选择', self)
        self.btn.move(20, 20)
        self.btn.clicked.connect(self.showDialog)

        self.frm = QWidget(self)
        self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name())
        self.frm.setGeometry(130, 22, 100, 100)

        self.setGeometry(300, 300, 250, 180)
        self.setWindowTitle('为子按钮设置皮肤')
        self.show()

    def showDialog(self):

        col = QColorDialog.getColor()

        if col.isValid():
            self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name())


if __name__ == '__main__':

    app = QApplication([])
    ex = Example()
    app.exec_()

在上面的代码中,我们首先创建了一个QColor对象,该对象的RGB值为0,0,0(即黑色)。QPushButton对象btn是我们要设置皮肤的子按钮,且其文本为“颜色选择”。然后,我们使用QPushButton对象btn的clicked信号连接到showDialog()方法。接着,我们创建了一个QWiget对象,并通过选取的颜色将其背景颜色设置为所选颜色。最后,我们为QWidget对象设置了几何属性,并显示了Example对象。在showDialog()方法中,我们使用QColorDialog.getColor()方法获取用户所选的颜色,并将所选颜色的名称作为QWidget对象的样式表传递。

通过上面的代码,我们如何通过QColorDialog为子按钮设置皮肤。