更新QTreeView和QListView中的项目

时间:2020-06-19 12:04:33

标签: c++ qt

我正在使用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));
}

0 个答案:

没有答案