QList:<T>:at: Qt 5 中的 ASSERT 失败:"index out of range"



我想使用 qrand(( 函数从我的目录中随机生成 *.png 个文件。为此,我创建了一个 QStringList 对象,以便我可以存储我拥有的所有文件目录认为当我运行我的应用程序时,我的 QStringList 对象中有一些文件列表,它粉碎了。

我的问题窗格中也有警告:>警告:未知转义序列:"\D"[默认启用]

applicationPath = "C:\Users\TekmeDocuments\QtProject\4Toddler";
                   ^

我添加上述警告问题的原因是,我在窗口机器上,所以我认为问题可能是路径问题

代码是

QString MainWindow::randomIcon()
{
        QStringList iconFileList;
        QString searchPath = applicationPath + "\icons";//applicationPath = 
        QDir directory = QDir(searchPath);
        QStringList filters;
        filters << "*.png";
        directory.setNameFilters(filters);
        iconFileList = directory.entryList(QDir::AllEntries);//i have 6 *.png files

        int randomIndex = qrand() % iconFileList.count();
        return iconFileList.at(randomIndex);//my application crash here
}

即使我尝试用 iconFileList.at(2(替换 iconFileList.at(randomIndex(时,它也会崩溃。我确定我的目录中有超过 2 个文件

答案在错误中:

applicationPath = "C:\Users\TekmeDocuments\QtProject\4Toddler";

应该是

applicationPath = "C:\Users\Tekme\Documents\QtProject\4Toddler";

您缺少一个额外的斜杠

相关内容

  • 没有找到相关文章

最新更新