Qt 5.5程序与QStringListModel崩溃



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

程序意外地完成了

当我在调试和发布模式下运行时。以下是相关代码:

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

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

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

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

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

无论如何,感谢大家提出的改进迭代器代码的建议!我相信我会带更多回来的!

编辑:当2天计时器结束时,我会将其标记为已回答。

相关内容

  • 没有找到相关文章

最新更新