Я использую QTreeView для отображения папок и QListView для отображения содержимого папок в файловой системе, но здесь есть одна проблема. Когда я вносил некоторые изменения в файловую систему, например, переименовал или удалил файл, эти изменения никогда не отображались в этих двух виджетах. Что я должен делать? Также я должен упомянуть здесь, что я использую QFileSytsemModel для отображения и работы с файловой системой. Вот мой код:
void MainWindow::ListDirectory(QString arg_smb_path)
{
o_directorySystemModel = new QFileSystemModel(this);
o_directorySystemModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs);
o_directorySystemModel->setRootPath(arg_smb_path);
ui->treeView->setModel(o_directorySystemModel);
ui->treeView->hideColumn(1);
ui->treeView->hideColumn(2);
ui->treeView->hideColumn(3);
o_fileSystemModel = new QFileSystemModel(this);
o_fileSystemModel->setFilter(QDir::NoDotAndDotDot | QDir::Files);
o_fileSystemModel->setRootPath(arg_smb_path);
ui->listView->setModel(o_fileSystemModel);
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
}
void MainWindow::on_treeView_clicked(const QModelIndex &index)
{
QString Path = o_directorySystemModel->fileInfo(index).absoluteFilePath();
ui->listView->setRootIndex(o_fileSystemModel->setRootPath(Path));
}