下面是关于Python PyQt5 QColorDialog的完整使用攻略,包含两个示例:
一、QColorDialog简介
QColorDialog是PyQt5中一个用于选择颜色的对话框组件,可以用于设置QWidget的背景颜色、字体颜色等。
二、QColorDialog常用方法
下面给出一些常用的QColorDialog方法:
getColor()
显示颜色选择对话框,并返回用户选择的颜色。其函数原型为:
getColor(initial=QColor(255, 255, 255), parent=None, title='', options=QColorDialog.ShowAlphaChannel)
参数说明:
initial
: 初始颜色。可以是一个QColor
对象或者一个RGB三元组。parent
: 父窗口。title
: 对话框标题。options
: 显示选项。
返回值为一个QColor
对象。
setCurrentColor()
设置当前已选择的颜色。其函数原型为:
setCurrentColor(color)
参数说明:
color
: 要设置的颜色,可以是一个QColor
对象或者一个RGB三元组。
currentColor()
获取当前已选择的颜色。返回值为一个QColor
对象。
三、QColorDialog使用示例
示例1 显示并获取用户选择的颜色
下面的示例展示了如何使用QColorDialog
组件显示颜色选择对话框,并获取用户选择的颜色:
import sys
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLabel, QColorDialog
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
self.button = QPushButton('Choose Color', self)
self.button.clicked.connect(self.showColorDialog)
layout.addWidget(self.button)
self.label = QLabel('Current Color: ', self)
layout.addWidget(self.label)
self.setLayout(layout)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Color Dialog')
self.show()
def showColorDialog(self):
color = QColorDialog.getColor()
if color.isValid():
self.label.setText('Current Color: ' + color.name())
self.label.setStyleSheet('color: %s' % color.name())
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
sys.exit(app.exec_())
在主窗口中添加一个按钮,点击按钮弹出颜色选择对话框。在对话框中选择颜色后,更新标签的文本和样式。
示例2 设置QWidget的背景颜色
下面的示例展示了如何使用QColorDialog
组件设置QWidget的背景颜色:
import sys
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLabel, QColorDialog
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
self.button = QPushButton('Choose Color', self)
self.button.clicked.connect(self.showColorDialog)
layout.addWidget(self.button)
self.setLayout(layout)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Color Dialog')
self.show()
def showColorDialog(self):
color = QColorDialog.getColor()
if color.isValid():
self.setStyleSheet('background-color: %s' % color.name())
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
sys.exit(app.exec_())
在主窗口中添加一个按钮,点击按钮弹出颜色选择对话框。在对话框中选择颜色后,设置QWidget的背景颜色。