Отображение настраиваемого списка файлов в QTreeView с использованием QFileSystemModel или QAbstractItemModel
Я создаю приложение PySide6 с открытым исходным кодом на основе настраиваемого файлового браузера в. Я уже создал подклассы для отображения настраиваемого столбца с некоторыми дополнительными данными.
Теперь моя цель - отобразить определенное подмножество файлов (они могут находиться на разных дисках) в виде дерева.
Для упрощения представьте, что у меня есть функция:
def files_to_display():
return ['C:\file1', 'D:\file2', 'D:\file3']
Теперь мне нужно отобразить эти файлы в моем
QTreeView
QSortFilterProxyModel
и
filterAcceptsRow
чтобы отфильтровать все остальное, и это сработало. Однако на относительно большом количестве файлов он работает очень медленно и непригоден для использования. Я почти уверен, что более простое пользовательское дерево файлов будет работать быстрее, потому что afaik отслеживает состояние папки и запускает другие дополнительные вещи, без которых я могу жить.
Я не знаю, как решить эту проблему. Я вижу в основном два пути:
Как-то вырезать то, что мне не нужно. С этим решением я не совсем понимаю, как я это делаю. В частности, как мне заполнить модель данными из моей функции? Как это использовать
setRootPath
Подкласс
QAbstractItemModel
QFileIconProvider
.
В общем, я бы хотел использовать облегченную версию
QFileSystemModel
Я открыт для альтернативных решений.