【问题标题】:How to select multiple directories with KFileDialog?如何使用 KFileDialog 选择多个目录?
【发布时间】:2013-09-13 11:23:59
【问题描述】:
使用PyKDE4.kio 选择多个文件,我可以使用KFileDialog.getOpenFileNames(而不是KFileDialog.getOpenFileName)。如果我想选择多个目录,我该怎么办?只有KFileDialog.getExistingDirectory。
使用KFileDialog.getOpenFileNames(filter = 'inode/directory')并选择多个文件夹显示错误:
已选择多个文件夹,此对话框不接受文件夹,因此无法决定输入哪个文件夹。请仅选择一个文件夹列出它。
【问题讨论】:
标签:
python
linux
qt
kde
pykde
【解决方案1】:
我从JohannesMunk on qtcentre.org找到了一个解决方案,并将其翻译成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())