python实现QFileDialog选择多个文件
时间: 2023-03-20 13:00:48 浏览: 130
在Python中使用QFileDialog选择多个文件,需要使用`QFileDialog`类的`getOpenFileNames()`方法。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QFileDialog
app = QApplication([])
file_dialog = QFileDialog()
file_dialog.setFileMode(QFileDialog.ExistingFiles)
files, _ = file_dialog.getOpenFileNames()
print(files)
app.exec_()
```
在这个代码中,我们创建了一个`QFileDialog`对象,然后设置其文件模式为`ExistingFiles`,以允许用户选择多个文件。然后使用`getOpenFileNames()`方法来打开文件对话框,该方法将返回一个元组,其中第一个元素是一个字符串列表,包含所有选择的文件路径。我们将这个列表打印出来。
请注意,我们还需要创建一个`QApplication`对象,以确保我们的Qt应用程序能够正常运行。如果你的代码已经运行在一个Qt应用程序中,就不需要再创建一个新的`QApplication`对象了。
相关问题
利用python QFileDialog如何选择多个目录
可以使用QFileDialog.getExistingDirectories()函数来选择多个目录。示例代码如下:
```python
from PyQt5.QtWidgets import QApplication, QFileDialog
app = QApplication([])
dirs = QFileDialog.getExistingDirectories(None, "选择多个目录", "/home", QFileDialog.ShowDirsOnly | QFileDialog.DontUseNativeDialog)
print(dirs)
```
其中,第一参数为父控件,可以设置为None;第二个参数为对话框标题;第三个参数为默认打开的目录;第四个参数设置为只显示目录,不显示文件;第五个参数设置为不使用操作系统原生对话框。选择完成后,返回的是一个包含选择的目录路径的列表。
QFileDialog打开多个文件
你可以使用QFileDialog的getOpenFileNames方法,该方法可以返回用户选择的多个文件的文件名列表。
以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QFileDialog
app = QApplication([])
file_dialog = QFileDialog()
file_dialog.setFileMode(QFileDialog.ExistingFiles)
file_names = file_dialog.getOpenFileNames()[0]
print(file_names)
```
在这个示例中,我们将文件对话框的文件模式设置为ExistingFiles,这样用户就可以选择多个现有文件。然后,我们调用getOpenFileNames方法来获取用户选择的文件名列表,并打印它们。
注意,getOpenFileNames方法返回的是一个元组,其中第一个元素是文件名列表,第二个元素是过滤器字符串,我们只需要获取文件名列表,因此使用[0]索引来获取它。