我将 QTreeView
与 setFilter()
函数一起使用,以允许仅显示目录和驱动程序,但不允许显示文件。
但是我想获取QTreeView
中没有出现的文件,继续显示QTreeView
中没有文件的目录和驱动程序。
QFileSystemModel dirsModel = new QFileSystemModel;
dirsModel->setRootPath("");
ui->treeView->setModel(dirsModel);
dirsModel->setFilter(QDir::AllDirs | QDir::NoDotAndDotDot);
我该怎么做?
最佳答案
正如我之前所说,您需要获取 entryList
。例如:
void MainWindow::on_pushButton_clicked()
{
QModelIndex ind = ui->treeView->currentIndex();
QFileSystemModel *sys = qobject_cast<QFileSystemModel*>( ui->treeView->model());
QString path = sys->filePath(ind);
qDebug() << path;
QDir dir(path);
QStringList files = dir.entryList(QStringList(), QDir::Files);
if(!files.size())
qDebug()<< "Empty";
else
for(int i=0 ; i<files.size();i++)
qDebug() << files.at(i);
}
我们在这里使用QFileSystemModel
只是为了获取当前路径,entryList
与此完全不同。
关于c++ - 如何获取QTreeView中没有出现的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26823847/