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
答案 0 :(得分:1)
getFiles();
ui->setupUi(this);
这导致指向ui-&gt; listView的指针吓坏了。现在代码是这样的:
ui->setupUi(this);
getFiles();
...
无论如何,感谢大家提出改进迭代器代码的建议!我相信我会更多回来!
编辑:当2天计时器启动时,我会将其标记为已回答。