📅  最后修改于: 2023-12-03 15:03:57.475000             🧑  作者: Mango
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_())
上述代码通过一个简单的窗口实现一个颜色选择器的示例,用户可以使用此示例选择任意颜色并查看当前选中的颜色。代码分为以下几个步骤:
导入必要的模块
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QPushButton, QLabel, QColorDialog
from PyQt5.QtGui import QColor
创建一个窗口类ColorPicker
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)
编写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_())
以上便是一个简单的使用PyQt5 QColorDialog进行颜色选择和当前颜色获取的例子。