Qt 如何让QFileDialog选择并返回多个文件夹

Qt 如何让QFileDialog选择并返回多个文件夹,qt,pyqt,Qt,Pyqt,我希望用户能够选择多个文件夹,然后将这些文件夹的路径存储在列表中 我怎样才能做到这一点?我当前的QFileDialog如下所示: str = QtGui.QFileDialog.getExistingDirectory(self, "Open Directory", /folder/subfolder, QtGui.QFileDialog.DontResolveSymlinks) 当然,它只允许我选择一个文件夹。如何将其更改为选择多个文件夹并将其返回到列表中?据我所知,您无法使用本机文件对话框

我希望用户能够选择多个文件夹,然后将这些文件夹的路径存储在列表中

我怎样才能做到这一点?我当前的QFileDialog如下所示:

str = QtGui.QFileDialog.getExistingDirectory(self, "Open Directory", /folder/subfolder, QtGui.QFileDialog.DontResolveSymlinks)

当然,它只允许我选择一个文件夹。如何将其更改为选择多个文件夹并将其返回到列表中?

据我所知,您无法使用本机文件对话框执行此操作。 但是,存在一种不使用本机对话框的变通方法:

file_dialog = QFileDialog()
file_dialog.setFileMode(QFileDialog.DirectoryOnly)
file_dialog.setOption(QFileDialog.DontUseNativeDialog, True)
file_view = file_dialog.findChild(QListView, 'listView')

# to make it possible to select multiple directories:
if file_view:
    file_view.setSelectionMode(QAbstractItemView.MultiSelection)
f_tree_view = file_dialog.findChild(QTreeView)
if f_tree_view:
    f_tree_view.setSelectionMode(QAbstractItemView.MultiSelection)

if file_dialog.exec():
    paths = file_dialog.selectedFiles():
不过,这个解决方案有点笨拙,但它是我所知道的最好的解决方案,而不是滚动您自己的自定义对话框