在 listWidget

问题描述

我想显示包括文件夹在内的选定路径中的所有 *.dat 文件:我选择的文件夹是“C:\iba\dat”,在 iba 中还有另外两个文件夹 Energie 和 Prozess,在这两个文件夹中是我想在 ListWidget 中显示文件

FAeingabe::FAeingabe(QWidget *parent) :
    QDialog(parent),ui(new Ui::FAeingabe)
{
    ui->setupUi(this);
    //icon
    setwindowIcon(QIcon(":/Icons/icon.ico"));

    QDir myPath("C:\\iba\\dat");
    QStringList nameFilters;
    nameFilters<<"*.dat";
    myPath.setFilter(QDir::AllEntries | QDir::Files | QDir::NodotAndDotDot | QDir::Nodot);
    faList = myPath.entryList();
    ui->listWidget->addItems(faList);
    ui->total->setText(QString("%1").arg(ui->listWidget->count()));
}

我明白了:

enter image description here

解决方法

首先,您没有使用您的名称过滤器。其次,您应该使用 QDirIterator 来获取文件列表。

QDirIterator it(QStringLiteral("C:\\iba\\dat"),QStringList() << "*.dat",QDir::Files,QDirIterator::Subdirectories);
QStringList faList;
while (it.hasNext())
       faList.append(it.next());