Russian Qt Forum
Ноябрь 01, 2024, 06:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTreeView + QFileSystemModel + QSortFilterProxyModel - невозможно раскрыть папку  (Прочитано 5835 раз)
spleenjack
Гость
« : Ноябрь 01, 2008, 14:11 »

Создаю на форме TreeView и привязываю его к FileSystemModel.
В этом случае все хорошо: можно ходить по папкам.

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

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

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

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

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

PS: С QDirModel такого глюка нет.
Записан
spleenjack
Гость
« Ответ #1 : Ноябрь 06, 2008, 18:23 »

Хотя бы направление укажите Улыбающийся
Записан
spirit
Гость
« Ответ #2 : Ноябрь 06, 2008, 18:52 »

метод sort находится в QAbstractItemModel. так что троллям писать ничего не надо, все уже описано Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 20.