Название: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: darktroll от Июнь 17, 2010, 04:06 Доброго времени суток, уважаемые гуру Qt.
Скажите, используя связку QTreeView + QFileSystemModel можно ли сделать так, как показано на скрине? Поясняю. Мне нужно сделать так, чтобы у QTreeView было несколько узлов-родителей. В данном случае 3: Home (домашняя директория пользователя) (реально это "/home/user/") Filesystem(корень файловой системы) (реально это "/") Volumes (примонтированные диски, флешки и т.д.) (реально это "/media/") При раскрытии каждого должно отображаться соответсвующиее данной директории содержимое (посредством QFileSystemModel). Если кто работает в Linux и пользуется, например, Nautilus, то левая панель этого самого наутилуса именно то что я имею ввиду. Подскажите пожалуйста, это вообще реально сделать в такой связке или каким-либо другим способ проще/грамотнее? (http://img.pixs.ru/storage/6/1/3/Snimokpng_9263849_748613.png) Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: lit-uriy от Июнь 17, 2010, 06:35 надо свою модель-посредник сделать.
Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: crossly от Июнь 17, 2010, 09:55 treeview, rootdecorated= false, setrootindex
Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: darktroll от Июнь 17, 2010, 11:38 надо свою модель-посредник сделать. Вот этого я и боялся.... Я просто не представляю как это делать..... :)treeview, rootdecorated= false, setrootindex Я наверное чего-то не понимаю, но я не вижу способа этими средствами реализовать задуманное. Я так понимаю, setrootindex задает конкретный каталог в качестве корневого, но только один. а мне надо несколько. Если это не так, то не могли бы Вы привести маленький примерчик? Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: crossly от Июнь 17, 2010, 11:44 простите.... а каким образом может быть несколько корневых каталогов??.... все просто .... берем вьюху.... убираем декорацию.... дабы не было в виде дерева.... в первой вьюхе выбираем узел Home.... его же в качестве корневого устанавливаем во вторую.... и получаем то что тебе нужно...
Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: darktroll от Июнь 17, 2010, 12:26 Мы друг друга не понимаем.... :) Имхо, то что придется писать свою модель - самый правльный ответ.
Объясняю суть. Есть две вьюхи: qtreeview и qtableview. На обе повешена qfilesystemmodel. В qtreeview отображаются узлы-родители наиболее часто посещаемых папок (в моем же случае это домашняя директория, корневой каталог и директория, куда монтируются диски). При клике на узел он должен раскрываться + на qtableview отображается его содежимое со всеми свойствами (имя, размер, дата изменения и т.д.). Так вот из всего этого затык только с размещением в qtreeview нескольких узлов-родителей (повторюсь: home, file system и volumes). Это нужно, чтобы быстро получить доступ к часто используемым папкам. Т.е чтобы не рыскать по всей файловой системе в поисках нужной папки, вывел ее в qtreeview и обращайся к ней одним кликом. Как-то так.... Проще объяснить не смогу наверное.... :) Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: crossly от Июнь 17, 2010, 12:33 сори.... дошло.. :)
Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: darktroll от Июнь 17, 2010, 12:44 Это хорошо.... :) Но вот как решить свою проблему - не соображу... Неужели никак не обойтись без написания модели?
Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: lit-uriy от Июнь 17, 2010, 12:47 >>Неужели никак не обойтись без написания модели?
нет. Но это не так страшно, главное начать, потом это может превратиться в хоби ;) Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: Kolobok от Июнь 17, 2010, 12:51 Можно расположить три вьюшки друг под другом и назначить каждой свою QFileSystemModel.
Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: darktroll от Июнь 17, 2010, 12:54 Можно расположить три вьюшки друг под другом и назначить каждой свою QFileSystemModel. Думал об этом, но имхо, это будет занимать слишком много ресурсов, т.к программа должна работать на слабой машинке (с небольшим экраном и скромными хар-ками) с максимальной скоростью. >>Неужели никак не обойтись без написания модели? :)нет. Но это не так страшно, главное начать, потом это может превратиться в хоби ;) Если Вам не трудно, подскажите, с чего начать? Может краткий план создания модели? Я не совсем понимаю, что я должен реализовать и на основе чего. От чего мне нужно наследоваться? P.S. На всякий случай оговорюсь: не примите мою просьбу за нахальство, в ней нет намека на то чтобы все сделать за меня. Мне самому интересно этому научиться, но не знаю с чего начать.... Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: lit-uriy от Июнь 17, 2010, 12:58 >>подскажите, с чего начать? Может краткий план создания модели?
лучше поискать по форуму, есть примеры моделей и обсуждения связанные с ними. >>От чего мне нужно наследоваться? от QAbstractProxyModel и её наследников Почитать на русском можно тут (http://doc.crossplatform.ru/qt/4.5.0/model-view-proxy-models.html) Название: Re: QTreeView + QFileSystemModel: возможно ли несколько узлов-родителей? Отправлено: darktroll от Июнь 17, 2010, 13:00 Спасибо, буду пробовать. ;)
|