2013-10-10 64 views
2

我想使用qrand()函數從qt中隨機生成* .png文件。 要做到這一點,我已經創建了一個QStringList對象,以便我可以將我擁有的所有文件存儲在我的 目錄中。思考當我運行我的應用程序時,我的QStringList對象中有一些文件列表。QList中的ASSERT失敗<T> :: at:Qt 5中的「索引超出範圍」

我還警告我的問題窗格:>警告:不知名的轉義符:「\ d」 [默認啓用]

applicationPath = "C:\\Users\\Tekme\Documents\\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個文件

+0

其總是值得檢查'directory.exists()'和'!iconFileList.isEmpty()' – Zaiborg

+0

我覺得這樣的錯誤很愚蠢。感謝您的提示,最後我用了!conFileList.isEmpty()我幫了我很多 – realtekme

回答

1

答案是錯誤:

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

應該

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

你缺少一個額外的斜槓