Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建一个文件对话框,返回选定文件和目录的文件路径?_Python_Python 3.x_Pyqt_Pyqt5_Qfiledialog - Fatal编程技术网

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只允许选择文件或目录,不是两个都有。我明天晚些时候会继续挖掘,因为当前的解决方案似乎不可靠。大多数情况下,你不能先突出显示文件,然后选择按钮变灰,你必须先突出显示文件夹,然后再突出显示文件(因此,如果你只想选择文件,根本不起作用)。