我正在构建一个基于
QTreeView
中的自定义文件浏览器的开源PySide6应用程序。
我已经对
QFileSystemModel
进行了子类化,以显示一个带有一些额外数据的自定义列。
现在我的目标是在树状视图中显示一个特定的文件子集(它们可以位于不同的驱动器上)。
为了简化事情,想象一下,我有一个函数。
def files_to_display():
return ['C:\file1', 'D:\file2', 'D:\file3']
现在我需要在我的QTreeView
中显示这些文件。我试着用QSortFilterProxyModel
和filterAcceptsRow
来过滤掉其他的东西,结果成功了。然而,在相对较多的文件中,它的速度非常慢,无法使用。我很确定一个更简单的自定义文件树会工作得更快,因为据说QFileSystemModel
会跟踪文件夹状态并运行其他额外的东西,我可以不用这些东西。
我不确定如何解决这个问题。
我看到基本上有2种方法。
以某种方式从QFileSystemModel
中剪掉我不需要的东西。
对于这个解决方案,我并不完全理解我是如何做到这一点的。特别是,我如何用我的函数中的数据填充模型?它如何使用setRootPath
?
子类QAbstractItemModel
。