如何解决使用 QFileSystemModel 或 QAbstractItemModel
我正在基于 QTreeView
中的自定义文件浏览器构建一个开源 PySide6 应用程序。
我已经将 QFileSystemModel
子类化以显示带有一些额外数据的自定义列。
现在我的目标是在树视图中显示特定的文件子集(它们可以位于不同的驱动器上)。
为了简化事情,假设我有一个函数:
def files_to_display():
return ['C:\file1','D:\file2','D:\file3']
现在我需要在我的 QTreeView
中显示这些文件。我尝试使用 QSortFilterProxyModel
和 filterAcceptsRow
过滤掉其他所有内容,并且奏效了。然而,在相对大量的文件上,它非常慢且无法使用。我很确定一个更简单的自定义文件树会更快地工作,因为 afaik QFileSystemModel
跟踪文件夹状态并运行其他我可以没有的额外内容。
我不知道如何解决这个问题。 我看到基本上有两种方式:
-
不知何故从
QFileSystemModel
中删除了我不需要的东西。 有了这个解决方案,我不完全明白我是如何做到这一点的。特别是,我如何用我的函数中的数据填充模型?它如何使用setRootPath
? -
子类
QAbstractItemModel
。 这个解决方案或多或少是清楚的,但是,它缺少一些与QFileSystemModel
开箱即用的重要内容:我需要列和它提供的数据(名称、大小、类型、修改日期),我还需要用于QFileIconProvider
的文件/文件夹图标。
所以基本上我想使用 QFileSystemModel
的轻量级版本,而无需查看文件系统和我的文件列表。
我愿意接受替代解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。