PyQt5弹出窗口大全:实现输入框、消息框、文件对话框等

3 下载量 131 浏览量 更新于2024-09-02 收藏 109KB PDF 举报
PyQt5 弹出窗口大全笔记 PyQt5 是一个 Python 库,用于创建图形用户界面(GUI)应用程序。弹出窗口是 GUI 应用程序中非常重要的一个组件,用于与用户交互,获取用户输入,显示信息等。今天,我们将讨论 PyQt5 中的弹出窗口大全,包括输入框、消息框、文件对话框、颜色对话框、字体对话框和自定义对话框等。 输入框 在 PyQt5 中,可以使用 QLineEdit widget 创建输入框。输入框可以用于获取用户的文本输入,可以是整数、小数、文本等。例如: ```python from PyQt5.QtWidgets import QLineEdit input_widget = QLineEdit() ``` 消息框 消息框是用于显示信息的弹出窗口,可以是信息、问答、警告、危险等类型。PyQt5 提供了多种消息框,例如: ```python from PyQt5.QtWidgets import QMessageBox msg_box = QMessageBox() msg_box.setText("这是一个信息消息框") msg_box.exec_() ``` 文件对话框 文件对话框用于选择文件或文件夹,PyQt5 提供了多种文件对话框,例如: ```python from PyQt5.QtWidgets import QFileDialog file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.AnyFile) file_dialog.setViewMode(QFileDialog.Detail) file_dialog.exec_() ``` 颜色对话框 颜色对话框用于选择颜色,PyQt5 提供了 QColorDialog widget: ```python from PyQt5.QtWidgets import QColorDialog color_dialog = QColorDialog() color_dialog.exec_() ``` 字体对话框 字体对话框用于选择字体,PyQt5 提供了 QFontDialog widget: ```python from PyQt5.QtWidgets import QFontDialog font_dialog = QFontDialog() font_dialog.exec_() ``` 自定义对话框 自定义对话框可以用于实现特殊的交互需求。PyQt5 提供了信号/槽机制,可以用于实现自定义对话框的返回值。例如: ```python from PyQt5.QtCore import pyqtSignal class MyDialog(QDialog): signal = pyqtSignal(str) def __init__(self): super().__init__() def accept(self): self.signal.emit("这是一个自定义对话框") super().accept() ``` 示例代码 以下是完整的示例代码: ```python from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt, pyqtSignal, QTimer class MyWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle('PyQt5 弹出窗口大全') self.resize(400, 300) wl = QVBoxLayout(self) h1 = QHBoxLayout() btn11 = QPushButton('输入:整数') btn12 = QPushButton('输入:小数') btn13 = QPushButton('输入:文本') btn14 = QPushButton('输入:多文') btn15 = QPushButton('输入:选项') h1.addWidget(btn11) h1.addWidget(btn12) h1.addWidget(btn13) h1.addWidget(btn14) h1.addWidget(btn15) h2 = QHBoxLayout() btn21 = QPushButton('消息:信息') btn22 = QPushButton('消息:问答') btn23 = QPushButton('消息:警告') btn24 = QPushButton('消息:危险') btn25 = QPushButton('消息:关于') h2.addWidget(btn21) h2.addWidget(btn22) h2.addWidget(btn23) h2.addWidget(btn24) h2.addWidget(btn25) h3 = QHBoxLayout() btn31 = QPushButton('文件:文件夹') btn32 = QPushButton('文件:单文件') btn33 = QPushButton('文件:多文件') btn34 = QPushButton('文件:保存') btn35 = QPushButton('文件:另存为') h3.addWidget(btn31) h3.addWidget(btn32) h3.addWidget(btn33) h3.addWidget(btn34) h3.addWidget(btn35) h4 = QHBoxLayout() btn41 = QPushButton('颜色') btn42 = QPushButton('字体') btn43 = QPushButton('自定义') h4.addWidget(btn41) h4.addWidget(btn42) h4.addWidget(btn43) wl.addLayout(h1) wl.addLayout(h2) wl.addLayout(h3) wl.addLayout(h4) ``` PyQt5 提供了非常丰富的弹出窗口组件,可以满足各种 GUI 应用程序的需求。