Python 如何创建一个文件对话框,返回选定文件和目录的文件路径?
我正在尝试使用Python 如何创建一个文件对话框,返回选定文件和目录的文件路径?,python,python-3.x,pyqt,pyqt5,qfiledialog,Python,Python 3.x,Pyqt,Pyqt5,Qfiledialog,我正在尝试使用QFileDialog获取所选文件夹和目录的路径列表 我知道如何使用QFileDialog.getOpenFileNames和QFileDialog.getExistingDirectory执行其中一项操作,但不能同时执行这两项操作 C++文档和其他问题在我看来并不起作用。 我正在Windows上使用PyQt5 5.14.2和Python 3.8.2 编辑: 我已经设法想出了以下解决方案,不使用本机Windows对话框,但它的工作,但似乎'黑客'。有谁能想出更好的解决办法吗 从P
QFileDialog
获取所选文件夹和目录的路径列表
我知道如何使用QFileDialog.getOpenFileNames
和QFileDialog.getExistingDirectory
执行其中一项操作,但不能同时执行这两项操作
C++文档和其他问题在我看来并不起作用。 我正在Windows上使用
PyQt5 5.14.2
和Python 3.8.2
编辑:
我已经设法想出了以下解决方案,不使用本机Windows对话框,但它的工作,但似乎'黑客'。有谁能想出更好的解决办法吗
从PyQt5导入QtWidgets
main_window=QtWidgets.QApplication([])
dlg=qtwidts.QFileDialog()
setFileMode(qtwidts.QFileDialog.Directory)
dlg.setOption(qtwidts.QFileDialog.DontUseNativeDialog,True)
_list=dlg.findChild(qtwidts.QListView,“listView”)
如果列表:
_list.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
tree=dlg.findChild(qtwidts.QTreeView,'treeView')
如果树:
tree.setSelectionMode(qtwidts.QAbstractItemView.MultiSelection)
所选=无
如果dlg.exec():
selected=dlg.selectedFiles()
打印(选定)
您希望能够选择文件和目录吗?还是要获取所选文件的目录?我希望能够选择文件和目录。我想做的是使用文件路径从选定的文件和文件夹创建一个zip存档(比这更复杂,但你可以理解要点),选择文件并获取所选文件夹/目录中的子文件就足够了-不是我想要的,但我可以使用它。编辑中提出的解决方案可能是唯一可能的,因为QFileDialog只允许选择文件或目录,不是两者都有。我明天晚些时候会继续挖掘,因为当前的解决方案似乎不可靠。大多数情况下,当“选择”按钮变灰时,你不能先突出显示文件,你必须先突出显示文件夹,然后再突出显示文件(因此,如果你只想选择文件,根本不起作用)。你想能够选择文件和目录吗?还是要获取所选文件的目录?我希望能够选择文件和目录。我想做的是使用文件路径从选定的文件和文件夹创建一个zip存档(比这更复杂,但你可以理解要点),选择文件并获取所选文件夹/目录中的子文件就足够了-不是我想要的,但我可以使用它。编辑中提出的解决方案可能是唯一可能的,因为QFileDialog只允许选择文件或目录,不是两个都有。我明天晚些时候会继续挖掘,因为当前的解决方案似乎不可靠。大多数情况下,你不能先突出显示文件,然后选择按钮变灰,你必须先突出显示文件夹,然后再突出显示文件(因此,如果你只想选择文件,根本不起作用)。