Python:QTreeView按文件名扩展名过滤,但仅显示父文件夹

时间:2020-08-12 11:06:54

标签: python file filter treeview

我想创建一个仅显示具有特定文件扩展名(例如* .jpg)的文件夹的树状视图。到目前为止,我得到的代码工作正常,但是我不想看到包含文件的文件夹-相反,我只想看到它的父文件夹。

tia, 丹尼尔

示例:

Folder1 \ Subfolder1 \ file.jpg

Folder2 \ Subfolder1 \ Subfolder2 \ file.jpg

结果:

文件夹1 \子文件夹1 \

文件夹2 \子文件夹1 \子文件夹2 \

目标:

文件夹1

Folder2 \ Subfolder1 \

代码:

class TreeView(QTreeView):
    def __init__(self, type, *args, **kwargs):
        QTreeView.__init__(self)
        
        model = QFileSystemModel()
        model.setRootPath(QDir.rootPath())
        model.setFilter(QtCore.QDir.AllDirs|QtCore.QDir.NoDotAndDotDot)
        model.setNameFilterDisables(0)
        model.setNameFilters(['*.jpg'])
        
        
        self.setModel(model)
        self.setRootIndex(model.index(type))
        self.clicked.connect(self.test)

        for e in [1,2,3,4]:
            self.hideColumn(e)
        
        self.setHeaderHidden(1)
        self.setRootIsDecorated(0)
        self.setExpandsOnDoubleClick(1)

    def test(self, signal):
        file_path = self.model().filePath(signal)
        print(file_path)


type = os.path.normpath('C:\\')
w = TreeView(type)
w.show()

0 个答案:

没有答案