QColorDialog是一个用于选择颜色的Qt控件基类,可以用于在应用程序中显示颜色选择对话框。以下是QColorDialog类的一些常用API及其说明:
一、构造函数
QColorDialog(QWidget *parent = nullptr)
构造一个新的颜色选择对话框,父窗口为parent。
二、基本属性
- setCurrentColor(const QColor &color):设置当前选择的颜色
- setOption(QColorDialog::ColorDialogOption option, bool on = true):设置颜色选择对话框的选项
三、基本方法
getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), QColorDialog::ColorDialogOptions options = 0)
显示颜色选择对话框,并返回用户选择的颜色。
getColor(QWidget *parent = nullptr, const QString &title = QString(), const QColor &initial = Qt::white, QColorDialog::ColorDialogOptions options = 0)
显示颜色选择对话框,并返回用户选择的颜色。
以下是一个简单的示例,演示了如何使用QColorDialog来创建一个简单的颜色选择对话框:
import sys
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QColorDialog
class ColorDialogDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Color Dialog Demo")
self.label = QLabel("Hello, PyQt5!")
self.label.setStyleSheet("background-color: white;")
self.button = QPushButton("Choose Color")
self.button.clicked.connect(self.showColorDialog)
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.button)
self.setLayout(layout)
def showColorDialog(self):
color = QColorDialog.getColor(self.label.palette().color(self.label.backgroundRole()), self, "Select Color")
if color.isValid():
self.label.setStyleSheet("background-color: {}".format(color.name()))
app = QApplication(sys.argv)
dialog = ColorDialogDemo()
dialog.show()
sys.exit(app.exec_())
在这个示例中,我们创建了一个名为ColorDialogDemo的自定义窗口类,它包含一个标签和一个按钮。当点击按钮时,会显示颜色选择对话框,并将用户选择的颜色应用于标签的背景颜色。在showColorDialog方法中,我们调用QColorDialog.getColor方法来显示颜色选择对话框,并将当前标签的背景颜色作为初始颜色。如果用户单击了"OK"按钮,则会将所选颜色应用于标签的背景颜色。