文章目录
- QFileDialog的介绍和使用
QFileDialog的介绍和使用
QFileDialog是Qt框架中提供的一个文件选择对话框。它可以让用户通过图形界面的方式选择文件或目录,并提供了许多与文件操作相关的实用功能,例如文件过滤、文件类型限制、文件名默认值、默认目录等。
它具有以下常用的静态方法:
getOpenFileName()
:选择单个文件打开,返回文件的完整路径。getOpenFileNames()
:选择多个文件打开,返回文件的完整路径列表。getSaveFileName()
:选择单个文件保存,返回文件的完整路径。getExistingDirectory()
:选择一个目录打开,返回目录的完整路径。
QFileDialog的常见用法是在QPushButton的clicked信号或QAction的triggered信号的槽函数中打开对话框,例如:
from PyQt5.QtWidgets import *
import sysclass MainWindow(QMainWindow):def __init__(self):super().__init__()self.setup_ui()def setup_ui(self):self.widget = QWidget()self.setCentralWidget(self.widget)vbox = QVBoxLayout(self.widget)btu1 = QPushButton('选择单个文件')btu2 = QPushButton('选择多个文件')btu3 = QPushButton('选择单个目录')btu1.clicked.connect(self.Select_a_single_file)btu2.clicked.connect(self.Select_multiple_files)btu3.clicked.connect(self.Select_a_single_directory)vbox.addWidget(btu1)vbox.addWidget(btu2)vbox.addWidget(btu3)# 选择单个文件def Select_a_single_file(self):file_path, _ = QFileDialog.getOpenFileName(self, "选择文件", "", "All Files (*)")if file_path:print(file_path)# 选择多个文件def Select_multiple_files(self):file_paths, _ = QFileDialog.getOpenFileNames(self, "选择文件", "/", "Excel文件 (*.xlsx *xls);;Word文件 (*.docx)")if file_paths:print(file_paths)def Select_a_single_directory(self):dir_path = QFileDialog.getExistingDirectory(self, "选择目录", "F:/", QFileDialog.ShowDirsOnly)if dir_path:print("选择的目录路径:", dir_path)if __name__ == '__main__':app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())
注意:在QFileDialog中,我们可以使用斜杠 “/” 指定对话框中显示的起始目录。在这个例子中,"/"
表示从文件系统的根目录开始展示文件选择对话框。""
表示从当前目录开始展示文件选择对话框。实际上,你可以根据需要将起始目录更改为你想要的任何有效路径,例如当前工作目录、特定目录结构等。
运行结果:
- 选择单个文件
- 点击“选择单个文件”后,从当前目录打开文件选择对话框。
- 点击“选择单个文件”后,从当前目录打开文件选择对话框。
- 选择多个文件
- 点击“选择多个文件”后,从根目录打开文件选择对话框。
- 点击“选择多个文件”后,从根目录打开文件选择对话框。
- 选择单个目录
- 点击“选择单个目录”后,从F盘打开文件选择对话框。
- 点击“选择单个目录”后,从F盘打开文件选择对话框。