PyQt5 QColorDialog – 获取布局

  • Post category:Python

PyQt5是Python语言中的一个GUI库,QColorDialog可以在GUI界面中提供颜色选择对话框,能够自定义颜色,获取颜色值等。

以下是QColorDialog的获取布局的使用攻略。

1. 导入PyQt5包

首先需要导入PyQt5库,如果没有安装需要先安装。

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

2. 使用QColorDialog

color = QColorDialog.getColor()

调用QColorDialog.getColor()方法,打开颜色选择对话框,让用户选择颜色。该方法是一个阻塞方法,需要等待用户选择完颜色后才会继续执行后面的代码。返回的是一个QColor对象,包含颜色的RGB值。

3. 判断用户是否选择颜色

颜色选择对话框有两个按钮:确定和取消。需要判断用户是否选择了颜色。

if color.isValid():
    print(color.rgb())
else:
    print("用户取消了选择颜色!")

判断用户选择的颜色是否有效,如果有效则输出RGB值,如果无效则提示用户取消了选择颜色。

示例一

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

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

    def initUI(self):
        self.setWindowTitle('颜色选择器')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def mousePressEvent(self, event):
        color = QColorDialog.getColor()
        if color.isValid():
            self.setStyleSheet('background-color: %s' % color.name())

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

打开窗口后,单击窗口,就会弹出颜色选择对话框。选择完颜色后,窗口的背景颜色会变成用户选择的颜色。

示例二

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

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

    def initUI(self):
        self.setWindowTitle('颜色选择器')
        self.setGeometry(300, 300, 300, 200)

        vbox = QVBoxLayout(self)

        btn = QPushButton('选择颜色', self)
        btn.resize(btn.sizeHint())
        vbox.addWidget(btn)

        label = QLabel(self)
        vbox.addWidget(label)

        btn.clicked.connect(lambda: self.onButtonClick(label))

        self.show()

    def onButtonClick(self, label):
        color = QColorDialog.getColor()
        if color.isValid():
            label.setStyleSheet('background-color: %s' % color.name())

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

这个例子中,首先创建了一个按钮和一个标签,当单击按钮时,弹出颜色选择对话框。选择完颜色后,标签的背景颜色会变成用户选择的颜色。

以上是PyQt5 QColorDialog-获取布局的完整使用攻略。