Russian Qt Forum

Qt => Model-View (MV) => Тема начата: spleenjack от Ноябрь 01, 2008, 14:11



Название: QTreeView + QFileSystemModel + QSortFilterProxyModel - невозможно раскрыть папку
Отправлено: spleenjack от Ноябрь 01, 2008, 14:11
Создаю на форме TreeView и привязываю его к FileSystemModel.
В этом случае все хорошо: можно ходить по папкам.

Если включить возможность сортировки в treeView, то моделька будет сама сортировать данные, но! Во-первых, она это делает не всегда: т.е. нажал на колонку в хидере - и ничего не происходит, нажал второй раз - опять ничего, нажал третий - отсортировалось. Во-вторых, сортировка происходит просто в лексикографическом порядке по имени, т.е. стандартная последовательность "сначала папки - потом файлы" не создается (хотя, судя по исходнику - должно). В-третьих, даже когда сортировка происходит - это делается очень медленно. Видимо, из-за перестройки индексов (этот момент я еще не очень понимаю). Ну, и в-четвертых, сортировка делается в модельке, поэтому, если у меня будет еще и listView - в нем порядок тоже изменится.

Кстати, тут такой момент - сортировка public методом sort() моделькой поддерживается, но в документации это не отражено. Об этом нужно сообщать троллям?

Естественно, приходит решение использовать SortFilterProxyModel. Но здесь появляется вот какая проблема.

У папок исчезает крестик с помощью которого можно открыть список его дочерних элементов. По двойному клику раскрытие тоже не происходит.

Из-за чего такое может быть?

PS: С QDirModel такого глюка нет.


Название: Re: QTreeView + QFileSystemModel + QSortFilterProxyModel - невозможно раскрыть папку
Отправлено: spleenjack от Ноябрь 06, 2008, 18:23
Хотя бы направление укажите :)


Название: Re: QTreeView + QFileSystemModel + QSortFilterProxyModel - невозможно раскрыть папку
Отправлено: spirit от Ноябрь 06, 2008, 18:52
метод sort находится в QAbstractItemModel. так что троллям писать ничего не надо, все уже описано :)