1. PyQt5简介
PyQt5是用于Python语言的一种GUI框架。它是基于QtGUI库的Python语言封装。PyQt5提供了丰富的UI界面控件,使得开发图形用户界面(GUI)变得更加简单,并且可以进行跨平台的开发。
在PyQt5中,QFileDialog是一种常用的控件,用于弹出文件打开或保存对话框。QFileDialog可以让用户选择文件或目录,并可以在控件中设置过滤器,以便在对话框中显示特定类型的文件。
2. 打开对话框QFileDialog
2.1 打开文件对话框
在PyQt5中,打开文件对话框可以通过调用QFileDialog类中的getOpenFileName函数来实现。getOpenFileName函数是一个静态方法,用于显示文件打开对话框并返回用户选择的文件名称。
from PyQt5.QtWidgets import QFileDialog, QApplication
app = QApplication([])
filename, _ = QFileDialog.getOpenFileName(None, "Open File", "", "Text Files (*.txt)")
在代码中,第一个参数为控件的父类,None表示没有父类,在不需要指定父控件时可以传入None。第二个参数为对话框标题。第三个参数为文件对话框的默认打开目录。第四个参数为过滤器,用于过滤显示的文件类型。函数的返回值是一个元组,分别包含文件名和文件扩展名。
2.2 获取目录文件名
使用getExistingDirectory()方法可以让用户选择一个文件夹,通过指定QFileDialog.Directory的参数设定对话框为选择目录模式。
dir_path = QFileDialog.getExistingDirectory(self, '选择文件路径', 'C:/')
#设置初始路径、文件类型过滤
file_name,_= QFileDialog.getOpenFileName(self,'文件选择','file','Text files (*.txt)')
在代码中,第一个参数为控件的父类,'选择文件路径'为显示在对话框标题栏上的标题。第二个参数为打开对话框的起始目录。第三个参数为文件类型过滤器。
3. 保存对话框QFileDialog
3.1 保存文件对话框
在PyQt5中,保存文件对话框可以通过调用QFileDialog类中的getSaveFileName函数来实现。getSaveFileName函数是一个静态方法,用于显示文件保存对话框并返回用户选择的文件名称。如果用户点击了“取消”按钮,则返回空字符串。
filename, _ = QFileDialog.getSaveFileName(None, "Save File", "", "Text Files (*.txt)")
if filename:
with open(filename, 'w') as f:
f.write("Hello World!\n")
在代码中,第一个参数为控件的父类,None表示没有父类,在不需要指定父控件时可以传入None。第二个参数为对话框标题。第三个参数为文件对话框的默认保存目录。第四个参数为过滤器,用于过滤显示的文件类型。函数的返回值是一个元组,分别包含文件名和文件扩展名。
3.2 文件过滤器
文件过滤器可以让用户选择文件类型,并在对话框中只显示这些类型的文件。
#添加文件类型过滤器
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
name, _ = QFileDialog.getSaveFileName(self, "保存文件", "", "PNG Files (*.png);;JPG Files (*.jpg);;PDF Files (*.pdf)", options=options)
在代码中,第三个参数为过滤器,用“;;”分隔。getSaveFileName()函数的第四个参数表示默认的文件类型为PNG格式,也可以选择JPG或PDF格式。
4.总结
通过上述的介绍,我们可以知道如何使用PyQt5中的QFileDialog控件实现打开和保存对话框,并且可以设置过滤器以过滤显示的文件类型。QFileDialog控件是PyQt5中常用的控件之一, 对于开发者来说掌握控件的使用方法对于图形用户界面(GUI)开发是非常有用的。