PyQt5 QColorDialog – 为其子旋转框设置背景色

  • Post category:Python

下面是PyQt5 QColorDialog模块的详细使用攻略及两个示例:

1. PyQt5 QColorDialog 模块简介

QColorDialog是 PyQt5.QtWidgets 模块中的一个颜色对话框类,可用于选择颜色和设置颜色。

2. QColorDialog.setCustomColor() 示例

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QColorDialog, QVBoxLayout, QPushButton

class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 500, 450)
        self.setWindowTitle('QColorDialog 示例')

        vbox = QVBoxLayout(self)

        btn = QPushButton('选择颜色', self)
        btn.clicked.connect(self.showDialog)  # 绑定选择颜色的响应函数

        vbox.addWidget(btn)

    def showDialog(self):
        color = QColorDialog.getColor()  # 打开颜色对话框,获取返回的颜色值
        if color.isValid():
            self.setStyleSheet("QWidget { background-color: %s }" % color.name())  # 将所选颜色设置为背景色
            f = open("color.txt", "w")  # 将所选颜色的RGB值存储到文件
            f.write("[%d, %d, %d]" % (color.red(), color.green(), color.blue()))
            f.close()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

该示例中,我们创建了一个简单的 GUI 程序,界面中只有一个按钮,按下按钮可以选择颜色并将该颜色设置为 GUI 程序的背景色。我们还将所选颜色的 RGB 值存储到了 color.txt 文件中。

3. QColorDialog.setCustomColor() 示例

import sys
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QHBoxLayout, QPushButton, QColorDialog

class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.setStyleSheet("background-color: white;")
        self.setGeometry(300, 300, 460, 120)
        self.setWindowTitle('QColorDialog 示例')

        hbox = QHBoxLayout()
        self.setLayout(hbox)

        self.label = QLabel('请选择初始颜色: ', self) # 创建提示信息标签
        hbox.addWidget(self.label)

        self.color_btn = QPushButton('', self) # 创建颜色按钮
        self.color_btn.setMaximumSize(100, 30) # 设置最大尺寸
        self.color_btn.clicked.connect(self.change_color) # 绑定响应函数
        hbox.addWidget(self.color_btn)

    def change_color(self):
        color = QColorDialog.getColor() # 打开颜色对话框,获取所选择的颜色
        if color.isValid():
            self.color_btn.setStyleSheet('background:{}'.format(color.name())) # 设置按钮背景色
            self.setStyleSheet("background-color: {}".format(color.name())) # 设置GUI窗口背景色

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

该示例中,我们创建了一个包含两个按钮的界面,其中一个按钮是提示用的标签,另一个按钮是可以与用户交互的按钮,按下按钮即可打开颜色对话框,并将选择的颜色设置为标签和按钮的背景色。

总结:通过以上两个示例我们可以发现,在 PyQt5 中使用 QColorDialog 模块非常方便,只需调用其提供的函数即可显示出颜色选择对话框,并帮助用户进行颜色选择和设置。