【问题标题】: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())
    

    【讨论】:

    • 能否请您添加其余代码以弹出文件对话框窗口?
    • @Guillaume et voilà!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2016-09-08
    • 2013-01-08
    • 1970-01-01
    • 2021-03-03
    相关资源
    最近更新 更多