Qt 5.5 程序崩溃与 QStringListModel

Qt 5.5 Program crash with QStringListModel

这里是 Qt 菜鸟!我试图创建一个迭代器来查找给定文件夹中的所有 .txt 文件,将其添加到 QStringList 并将其传递给 QListView。但是当我声明一个新的 QStringListModel 时,我收到

The program has unexpectedly finished

当我 运行 处于调试和发布模式时。这是相关代码:

QDirIterator it(dir, QStringList() << "*.txt", QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories);
    if (it.hasNext()) {
        while (it.hasNext()) {

            QStringList fileList;

            // Remove file extension and absolute path from string respectively
            QString filenameRaw = it.next();
            QString filename = filenameRaw.split(".", QString::SkipEmptyParts).at(0);

            // Outputs correctly
            qDebug() << filename;

            fileList << filename;

            // The next line is the problem.
            QStringListModel *model = new QStringListModel(ui->listView);
            model->setStringList(fileList);
            ui->listView->setModel(model);

        }
    }

可能是一个愚蠢的问题,但仍然是我可以从中学习的东西:P

好的伙计们,我设法解决了问题。我的代码(尽管事实上它目前并不是最优化的)实际上很好。问题是我正在 调用封装此代码段的函数 ,getFiles(), UI 设置之前(捂脸,我知道):

getFiles();
ui->setupUi(this);

这导致指向 ui->listView 的指针崩溃。现在代码是这样的:

ui->setupUi(this);
getFiles();
...

无论如何,非常感谢大家对改进迭代器代码的建议!我相信我会回来的!

编辑:我会在 2 天计时器到时将其标记为已回答。