更新 QTreeView 和 QListView 中的项目

Update the items in QTreeView and QListView

本文关键字:项目 QListView QTreeView 更新      更新时间:2023-10-16

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

in python : self.listview.update((

在 C++ 中应该相同 ui->listview.update((

试试吧