1

PyKDE4.kio选择我可以使用的多个文件(KFileDialog.getOpenFileNames而不是KFileDialog.getOpenFileName)。如果我想选择多个目录,我该怎么办?只有KFileDialog.getExistingDirectory.

使用KFileDialog.getOpenFileNames(filter = 'inode/directory')并选择多个文件夹会显示错误:

已选择多个文件夹,并且此对话框不接受文件夹,因此无法决定输入哪个文件夹。请仅选择一个文件夹来列出它。

4

1 回答 1

4

在 qtcentre.org 上从 JohannesMunk找到了一个解决方案并将其翻译成 python

import sys
from PyQt5.QtWidgets import (QFileDialog, QAbstractItemView, QListView,
                             QTreeView, QApplication, QDialog)

class getExistingDirectories(QFileDialog):
    def __init__(self, *args):
        super(getExistingDirectories, self).__init__(*args)
        self.setOption(self.DontUseNativeDialog, True)
        self.setFileMode(self.Directory)
        self.setOption(self.ShowDirsOnly, True)
        self.findChildren(QListView)[0].setSelectionMode(QAbstractItemView.ExtendedSelection)
        self.findChildren(QTreeView)[0].setSelectionMode(QAbstractItemView.ExtendedSelection)

qapp = QApplication(sys.argv)
dlg = getExistingDirectories()
if dlg.exec_() == QDialog.Accepted:
    print(dlg.selectedFiles())
于 2013-09-10T21:49:43.287 回答