📜  PyQt5 QColorDialog – 获取当前颜色(1)

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

PyQt5 QColorDialog – 获取当前颜色

概述

PyQt5中的QColorDialog类提供一个颜色选择器对话框,从而让用户可以选择任意颜色,该类还提供了许多方法来操作颜色选择器对话框。此外,利用currentColor()方法可以获取当前选中的颜色。

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

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

        # 初始化界面
        self.setWindowTitle("PyQt5 Color Picker")
        self.setGeometry(100, 100, 300, 200)

        # 创建按钮和标签
        self.color_btn = QPushButton("选择颜色")
        self.color_label = QLabel("初始颜色")
        self.color_label.setStyleSheet("background-color: white")

        # 创建布局
        vbox = QVBoxLayout()
        hbox = QHBoxLayout()

        # 添加小部件到布局中
        vbox.addWidget(self.color_label)
        hbox.addWidget(self.color_btn)

        # 设置布局
        vbox.addLayout(hbox)
        self.setLayout(vbox)

        # 连接信号和槽
        self.color_btn.clicked.connect(self.choose_color)

    def choose_color(self):
        color = QColorDialog.getColor()

        if color.isValid():
            selected_color = "background-color: {}".format(color.name())
            self.color_label.setStyleSheet(selected_color)
            self.color_label.setText(color.name())

            current_color = QColorDialog.currentColor()
            print("当前颜色:", current_color.name())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = ColorPicker()
    window.show()
    sys.exit(app.exec_())
说明

上述代码通过一个简单的窗口实现一个颜色选择器的示例,用户可以使用此示例选择任意颜色并查看当前选中的颜色。代码分为以下几个步骤:

  1. 导入必要的模块

    from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QPushButton, QLabel, QColorDialog
    from PyQt5.QtGui import QColor
    
  2. 创建一个窗口类ColorPicker

    class ColorPicker(QWidget):
     def __init__(self):
         super().__init__()
    
  3. 初始化界面

    self.setWindowTitle("PyQt5 Color Picker")
    self.setGeometry(100, 100, 300, 200)
    
  4. 创建按钮和标签

    self.color_btn = QPushButton("选择颜色")
    self.color_label = QLabel("初始颜色")
    self.color_label.setStyleSheet("background-color: white")
    
  5. 创建布局

    vbox = QVBoxLayout()
    hbox = QHBoxLayout()
    
  6. 添加小部件到布局中

    vbox.addWidget(self.color_label)
    hbox.addWidget(self.color_btn)
    
  7. 设置布局

    vbox.addLayout(hbox)
    self.setLayout(vbox)
    
  8. 连接信号和槽

    self.color_btn.clicked.connect(self.choose_color)
    
  9. 编写choose_color()方法

    def choose_color(self):
        color = QColorDialog.getColor()
    
        if color.isValid():
            selected_color = "background-color: {}".format(color.name())
            self.color_label.setStyleSheet(selected_color)
            self.color_label.setText(color.name())
    
            current_color = QColorDialog.currentColor()
            print("当前颜色:", current_color.name())
    

    此方法用于显示颜色选择器,并在用户选择颜色后获取当前的选中颜色,并将其打印在控制台上。

  10. 实例化窗口并运行程序

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

以上便是一个简单的使用PyQt5 QColorDialog进行颜色选择和当前颜色获取的例子。