Название: Qfilesystemmodel монтирование устройства Отправлено: koldun90 от Март 14, 2015, 10:50 здравствуйте сделал простенький проект
tableview и две кнопки pushbutton отображаю стандартный qfilesystemmodel в tablewview (http://s014.radikal.ru/i329/1503/24/2d6cf0cf2a16.png) (http://www.radikal.ru) Код: #include "mainwindow.h" Смысл в том что когда я монтирую устройство tableview переходит в каталог с примонтированным устройством (/mnt/sdb1) когда я размонтирую устройство переходит в корневой каталог ("/") Ну и соответственно когда я кликаю двойным нажатие мыши по папке он заходит в папку. Проблема заключается в следующем: Допустим я делаю вот так. 1) Запускаю прогу 2) жму кнопку монтировать --устройство примонтировалось отобразилось сообщение смонтировано и tableview перешел в каталог /mnt/sdb1 3) потом жму размонтировать--- устройство размонтировалось отобразилось сообщение размонтировано и tableview перешел в каталог /--корень 4) жму снова кнопку монтировать---устройство примонтировалось отобразилось сообщение смонтировано и tableview перешел в каталог /mnt/sdb1 НО все содержимое флешки не отображается видно только папку с .. и с . хотя на флешке есть и папки и файлы. Так что проблема собственно что при повторном монтировании не отображается содержимое /mnt/sdb1 хотя стандартный менеджер операционки видит все каталоги и папки на ней даже после повторного монтирования... что можно сделать? Название: Re: Qfilesystemmodel монтирование устройства Отправлено: Hrundel от Март 15, 2015, 14:01 Ну, а в model1 ты сбрасываешь данные каким-то образом? Очищаешь ее где-то, или что-то типа того? Посмотри в документации как с моделью работать.
Название: Re: Qfilesystemmodel монтирование устройства Отправлено: koldun90 от Март 15, 2015, 15:02 там ничего нет про очистку qfilesystemmodel...
не знаю в чем проблема... Название: Re: Qfilesystemmodel монтирование устройства Отправлено: Hrundel от Март 15, 2015, 17:22 Ну там же написано:
Цитировать QFileSystemModel will not fetch any files or directories until setRootPath() is called. This will prevent any unnecessary querying on the file system until that point such as listing the drives on Windows. QFileSystemModel не будет получать какие-либо файлы или каталоги, пока не вызван setRootPath(). Дальше соответственно надо вызывать QModelIndex QFileSystemModel::setRootPath(const QString & newPath) Код
Название: Re: Qfilesystemmodel монтирование устройства Отправлено: koldun90 от Март 15, 2015, 17:39 Код
те я вас правильно понял если я вызываю QFileSystemModel::setRootIndex то перед ним я должен всегда вызывать QFileSystemModel::setRootPath? чтобы все корректно работало... Название: Re: Qfilesystemmodel монтирование устройства Отправлено: Hrundel от Март 15, 2015, 19:08 те я вас правильно понял если я вызываю QFileSystemModel::setRootIndex то перед ним я должен всегда вызывать QFileSystemModel::setRootPath? чтобы все корректно работало... Пологаю, что так должно быть, если верить докам. Название: Re: Qfilesystemmodel монтирование устройства Отправлено: koldun90 от Март 15, 2015, 20:08 спасибо проблема вроде бы решилась)
не знал вообще про вызов setrootpath перед setRootindex очень помогли... Название: Re: Qfilesystemmodel монтирование устройства Отправлено: Hrundel от Март 15, 2015, 20:19 Я тоже не знал. Сам сегодня первый раз читал про этот класс.
|