下面我就来详细讲解一下Python中PyQt5 QColorDialog控件的使用攻略。
什么是QColorDialog?
QColorDialog是PyQt5中的一个颜色对话框控件,可以用于让用户选择颜色,返回RGBA值(红、绿、蓝、透明度四个值)。
如何使用QColorDialog?
1. 引入PyQt5库
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QColorDialog
2. 创建QColorDialog窗口
color_dialog = QColorDialog()
3. 设置默认颜色
如果需要设置默认颜色,需要使用setColor方法。
color_dialog.setColor(QtGui.QColor(255, 0, 0))
4. 获取布局
获取布局有两种常用的方法,一种是使用 exec_() 方法,另一种是使用 open() 方法。
方法一:使用 exec_() 方法
使用 exec_() 方法可以显示一个模态窗口,用户必须关闭对话框才能继续操作。
if color_dialog.exec_():
color = color_dialog.currentColor().getRgb()
print('选择的颜色值为:', color)
方法二:使用 open() 方法
使用 open() 方法可以显示一个非模态窗口,用户可以在其他窗口的同时使用该对话框。
color_dialog.open()
color_dialog.colorSelected.connect(lambda: print("选择的颜色值为:", color_dialog.currentColor().getRgb()))
示例说明
示例一:单独使用
下面是一个简单的例子,让你更好的了解如何使用QColorDialog控件,让用户选择颜色。
import sys
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QColorDialog
class MainWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.color_btn = QtWidgets.QPushButton('选择颜色', self)
self.color_btn.move(20, 20)
self.color_btn.clicked.connect(self.show_color_dialog)
self.color_label = QtWidgets.QLabel(self)
self.color_label.setGeometry(20, 60, 200, 50)
self.color_label.setText('请选择颜色')
def show_color_dialog(self):
color_dialog = QColorDialog()
if color_dialog.exec_():
color = color_dialog.currentColor().getRgb()
self.color_label.setStyleSheet('QLabel{color:rgb(%d,%d,%d)}' % color)
self.color_label.setText('你选择的颜色是:' + str(color))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
运行上述代码,点击选择颜色按钮,便可弹出选择颜色对话框。选好颜色后,点击确认按钮,颜色便会在标签上显示。
示例二:与QMainWindow一起使用
下面是一个在QMainWindow中使用QColorDialog的例子,让你更好的了解如何在QMainWindow中使用QColorDialog控件。
import sys
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QMainWindow, QAction, QColorDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QColorDialog 示例程序')
self.color_label = QtWidgets.QLabel(self)
self.color_label.setGeometry(50, 50, 150, 50)
self.color_label.setText('请选择颜色')
self.color_btn = QAction(QtGui.QIcon(''), '选择颜色', self)
self.color_btn.triggered.connect(self.show_color_dialog)
self.toolbar = self.addToolBar('选择颜色')
self.toolbar.addAction(self.color_btn)
def show_color_dialog(self):
color_dialog = QColorDialog()
if color_dialog.exec_():
color = color_dialog.currentColor().getRgb()
self.color_label.setStyleSheet('QLabel{color:rgb(%d,%d,%d)}' % color)
self.color_label.setText('你选择的颜色是:' + str(color))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
运行上述代码,程序便会弹出一个MainWindow窗口,点击选择颜色按钮,便可弹出选择颜色对话框。选好颜色后,点击确认按钮,颜色便会在标签上显示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 QColorDialog – 获取布局 - Python技术站