這是代碼:分段故障::負載
void MainWindow::setPic(QString loc, int panel)
{
if(panel == 1)
{
loc1 = loc;
QPixmap pmap;
facedetect(loc1.toStdString(), 1, "CAND1.jpg");
qDebug() << "Loading : " << loc1;
pmap.load(loc1); // I'm getting the segfault error in this line
qDebug() << "Loaded : " << loc1;
ui->PicView1->setPixmap(pmap);
}
}
我怎麼能解決這個問題?
順便說一下,我在Ubuntu 12.04上使用Qt 4.8和最新的Qt Creator。
我試過用壁紙,它崩潰了。我用我的1x1編號的圖片試了一下,崩潰了(多麼粗魯......),我試了一下我的檢查時間表(從不同的圖像裁剪),它說它已加載,但QLabel
PicView1
不顯示任何東西。
我試着宣稱QPixmap
爲全局變量,出現段錯誤。
填充空像素圖沒什麼意義,並且沒有任何理由讓你發佈的代碼失敗,問題可能在其他地方。你確定loc函數確實是一個有效的QString嗎? – Mat 2012-02-26 09:40:28
是的,我確信它有內容,Qt Creator的調試視圖表示它有。 – Rek 2012-02-26 09:49:27
即使無效路徑也不能使QPixmap崩潰。嘗試使用不同的圖像文件,以確保它不是圖像閱讀代碼中的錯誤。 – 2012-02-26 12:03:08