Ошибка сегментации в QPixmap :: load - PullRequest
2 голосов
/ 26 февраля 2012

Это код:

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);
    }

}

Как я могу решить эту ошибку?

Кстати, я использую Qt 4.8 с последней версией Qt Creator, на Ubuntu 12.04.

Пробовал с обоями, вылетает. Я попробовал это с моим 1x1 идентификатором, потерпел крах (как грубо ...), я попробовал это с полосой моего графика экспертизы (обрезанный из другого изображения), он сказал, что загружен, но QLabel PicView1 не ничего не отображать.

Я попытался объявить QPixmap как глобальную переменную, получил segfault.

1 Ответ

0 голосов
/ 26 февраля 2012

Не заполняйте ваше изображение белым до загрузки ... Используйте QPixmap, следовательно:

QString loc;
// fill loc with a path to your image file.
QPixmap pmap;
pmap.load(loc);

Будьте осторожны, все типы изображений не могут быть прочитаны с помощью QTПосмотрите здесь QtImageReading , чтобы увидеть тип данных, поддерживаемый QT.

...