c++ - 如何获取QTreeView中没有出现的文件

标签 c++ qt qt5

我将 QTreeViewsetFilter() 函数一起使用,以允许仅显示目录和驱动程序,但不允许显示文件。

但是我想获取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/

相关文章:

c++ - Qt5 未注册触摸事件

c++ - "invalid cast from type ' const myClass ' to type ' int '",我怎样才能让它有效?

C++ winapi 提升

c++ - 使用 qDebug 收集用户输入

android - 在手机(ios android)跨平台QT上调用sqlite数据库路径

c++ - 当对象是类成员时,QFile 初始化/赋值操作问题

c++ - 尝试创建属性表时 mfc 断言失败

python - 为什么我的 QListView 在 IconMode 中是空的?

qt - 当我将窗口移动到具有不同 DPI 的屏幕时,为什么我的 QML 项目没有被缩放?

c++ - 如何在没有 ImageMagick 的情况下将 ImageMagick 图像导入 Qt5 应用程序?