首页 > 解决方案 > 如何从文件对话框中选择多个文件并同时打开并访问它们

问题描述

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog
from PyQt5 import QtCore
import sys
 
 
def dialog():
    file , check = QFileDialog.getOpenFileName(None, "QFileDialog.getOpenFileName()",
                    "", "All Files (*);;Python Files (*.py);;Text Files (*.txt)")
    if check:
        print(file)
 
app = QApplication(sys.argv)
win = QMainWindow()
win.setGeometry(400,400,300,300)
win.setWindowTitle("CodersLegacy")
  
button = QPushButton(win)
button.setText("Press")
button.clicked.connect(dialog)
button.move(50,50)
 
win.show()
sys.exit(app.exec_())

这是我按下按钮时选择并打开单个文件的代码。但是,如何将其更改为选择多个文件并同时打开。我尝试了语法,不幸的是,我找不到。

标签: pythonpyqt5qfiledialog

解决方案


您必须使用该QFileDialog::getOpenFileNames()方法,返回的元组的第二个值不是检查,而是指示使用的过滤器的字符串,如果要验证,则必须使用文件名的大小:

filenames, _ = QFileDialog.getOpenFileNames(
    None,
    "QFileDialog.getOpenFileNames()",
    "",
    "All Files (*);;Python Files (*.py);;Text Files (*.txt)",
)
if filenames:
    for filename in filenames:
        print(filename)

推荐阅读