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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать чтоб разные представления тянули из одной модели разные части?  (Прочитано 5231 раз)
Caduceus
Гость
« : Январь 26, 2009, 17:11 »

Вот например мождель QFileSystemModel и два вида QListView. Я хочу чтоб в одном обображались только папки, а в другом только файлы. Что надо сделать в модели или в видах?
Записан
ритт
Гость
« Ответ #1 : Январь 26, 2009, 17:27 »

в видах установить фильтрацию. если виды фильтрацию не поддерживают, воспользоваться Q*ProxyModel
Записан
kirill
Гость
« Ответ #2 : Январь 26, 2009, 18:24 »

Виды фильтрацию не поддерживают. Ее поддерживают модели, но делают это крайне криво.
Почитай мой пост на эту тему
http://www.prog.org.ru/topic_8424_0.html
Записан
ритт
Гость
« Ответ #3 : Январь 26, 2009, 19:24 »

виды фильтрацию поддерживают - равно как и сортировку. а вот модели поддерживают только фильтрацию исходных данных.
и не стОит говорить про кривость этой-самой фильтрации, прикрываясь найденной багой в сравнительно молодой модели...

Caduceus, смотри QSortFilterProxyModel и examples/itemviews/dirview
Записан
Caduceus
Гость
« Ответ #4 : Январь 26, 2009, 23:34 »

Хммм, сделал. И у папок в дереве пропали крестики Грустный
FilesTreeFilterModel* treeFilter = new FilesTreeFilterModel(this);
   treeFilter->setSourceModel(model);

   treeView->setModel(treeFilter);
   QModelIndex idx = treeFilter->mapFromSource(model->index(QDir::rootPath()) );
   treeView->setRootIndex(idx);

Тут уже спрашивали про это - но ответа не было

Записан
kirill
Гость
« Ответ #5 : Январь 27, 2009, 05:50 »

Крестики - это что? Плюсики штоли?
treeView->setRootIsDecorated(true);

не помогает?
Записан
Caduceus
Гость
« Ответ #6 : Январь 27, 2009, 10:46 »

Да, крестики - это плюсики
Нет, не помагает

Есть мысль по этому поводу. Я использую QFileSystemModel - и он вроде для ускорения работы не заполняет папку, пока та не раскрыта - то есть он не знает, есть что в папке или нет? Эту мысль подтверждает то, что крестик-плюсик таки появляется, если на папку кликнуть и во втором виде показывается её содержимое - вот после этого крестик у этой папки появляется

Как разрулить-то?
Записан
kirill
Гость
« Ответ #7 : Январь 27, 2009, 11:22 »

Может все таки воспользоваться QDirModel?
Записан
Caduceus
Гость
« Ответ #8 : Январь 27, 2009, 11:40 »

Да чё-т склоняюсь все больше к тому что свою модель и виды писать надо. Для примитивной работы с файлами и папками - QFileSysytem и QDirModel подходят идеально. Но чуть шаг влево , шаг вправо с необычным функцилоналом - и все, расстрел
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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