2016-07-07 201 views
0

我想讓用戶能夠選擇多個文件夾,然後將這些文件夾的路徑存儲在列表中。Qt - 獲取QFileDialog來選擇並返回多個文件夾?

我該如何做到這一點?我現在的QFileDialog是這樣的:

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

當然但是,這只是讓我選擇一個文件夾。我怎樣才能改變它來選擇多個文件夾,並將它們返回到列表中?

謝謝!

回答

1

據我所知,你不能用原生FileDialog做到這一點。 在那裏,但是,存在於你不使用本地對話框解決方法:

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(): 

此解決方案是一個有點笨重然而,但它比滾動自己的自定義對話框我知道其他的最佳解決方案。