Да, так и надо делать. Ручной апдейт там легко делается (я делал) - надо дергать слот какой-то (типа обновиДир(QString), к-ый дергается вотчером.
Тема умерла, а вопрос для меня стал актуален!
Можно поподробнее, как вручную обновить QFileSystemModel?
Создаю
model в конструкторе:
model = new QFileSystemModel(this);
model->setFilter(QDir::AllEntries);
model->setRootPath("");
ui->listView->setModel(model);
Затем, обрабатываю клики:
void TWgtFileList::on_listView_clicked(const QModelIndex &index)
{
QFileInfo fileInfo = model->fileInfo(index);
if (fileInfo.fileName() == "..")
{
QDir dir = fileInfo.dir();
dir.cdUp();
ui->listView->setRootIndex(model->index(dir.absolutePath()));
ui->lblPath->setText(model->filePath(ui->listView->rootIndex()));
}
else if (fileInfo.fileName() == ".")
{
ui->listView->setRootIndex(model->index(""));
ui->lblPath->setText(model->filePath(ui->listView->rootIndex()));
}
else if (fileInfo.isDir())
{
QString str = model->filePath(ui->listView->rootIndex());
ui->listView->setRootIndex(index);
ui->lblPath->setText(str);
}
else if (fileInfo.isFile())
fName = fileInfo.absoluteFilePath();
}
Если одновременно записать файл в сетевую папку, она в модели не обновляется. Что надо "дёрнуть"?