Russian Qt Forum

Qt => Вопросы новичков => Тема начата: billy4685 от Июнь 22, 2017, 09:59



Название: Есть ли обновление содержимого у QFileSystemModel?
Отправлено: billy4685 от Июнь 22, 2017, 09:59
Здравствуйте, господа форумчаны.  Столкнулся на днях с одной небольшой проблемой.

Я пишу окно для копирования файлов с флешки на жесткий диск, а также удаление файлов с диска.
Для отображения дерева каталогов использую QFileSystemModel. Создаю его в конструкторе своего окна:

Код:
model = new QFileSystemModel();
model->setHeaderData(0, Qt::Horizontal, tr("Имя"), Qt::DisplayRole);
model->setHeaderData(1, Qt::Horizontal, tr("Размер"), Qt::DisplayRole);
model->setHeaderData(2, Qt::Horizontal, tr("Тип"), Qt::DisplayRole);
model->setHeaderData(3, Qt::Horizontal, tr("Дата изменения"), Qt::DisplayRole);

Далее при каждом подсоединении флешки, подгружаю данную модель в QTreeView.
Также указываю какой каталог будет корневым.

Код:
treeView->setModel(model); 
treeView->setRootIndex(model->setRootPath(root_usb));

При извлечении флешки, делаю следующее:
Код:
treeView->setModel(NULL); 

Заметил одну вещь. Если открыть мое окно, вставить флешку - то отображается дерево каталогов флешки.
Далее, если не закрывая окно, извлечь флешку - то дерево как и задумано уже не отображается.
Но если же потом снова вставить уже другую флешку - то отображается дерево каталогов предыдущей
флешки, а не вставленной на данный момент.

Понимаю что нужно как-то обновить содержимое каталога флешки в QFileSystemModel.
Но как это сделать пока не нашел.

Может, кто знает как?

Каждый раз создавать экземпляр QFileSystemModel при подсоединении флешки, и удалять его при ее
извлечении не хотелось бы. Пока что у меня вот только так и получается избавится от данной проблемы.


Название: Re: Есть ли обновление содержимого у QFileSystemModel?
Отправлено: billy4685 от Июнь 22, 2017, 10:52
Хотя, если я удаляю и создаю файлы на флешке через проводник, то в своем созданном окне эти изменения видны.
Но если я к примеру вставил флешку в свой комп, в своем созданном окне вижу список каталогов.
Потом извлекаю эту флешку, вставляю в другой комп, удаляю на ней файл. То при повторном подсоединении
ее в первый компьютер, в моем созданном окне еще отображается удаленный мной файл на этой флешке.