我想创建一个仅显示具有特定文件扩展名(例如* .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()