我正在QTreeView
中基于自定义文件浏览器构建一个开源PySide6应用程序。
我已经对QFileSystemModel
进行了子类化,以显示包含一些额外数据的自定义列
现在,我的目标是在树状视图中显示文件的特定子集(它们可以位于不同的驱动器上)
为了简化事情,假设我有一个函数:
def files_to_display():
return ['C:\file1', 'D:\file2', 'D:\file3']
现在我需要在我的QTreeView
中显示这些文件。我试着用QSortFilterProxyModel
和filterAcceptsRow
过滤掉所有其他的东西,结果成功了。然而,在相对大量的文件上,它的速度非常慢,无法使用。我确信一个更简单的自定义文件树会工作得更快,因为afaikQFileSystemModel
跟踪文件夹状态并运行其他我可以不用的额外内容
我不知道如何解决这个问题。 我基本上看到两种方式:
从QFileSystemModel
中删掉我不需要的东西。
对于这个解决方案,我不完全理解我是如何做到这一点的。特别是,如何使用函数中的数据填充模型?它如何使用setRootPath
亚类QAbstractItemModel
。
这个解决方案或多或少是清楚的,但是,它缺少了一些开箱即用的重要内容:我需要列和它提供的数据(名称、大小、类型、修改日期),我还需要与QFileIconProvider
一起使用的文件/文件夹图标
因此,基本上我希望使用轻量级版本的QFileSystemModel
,而不必查看文件系统和文件列表
我对其他解决办法持开放态度
目前没有回答
相关问题 更多 >
编程相关推荐