经过多次迭代后,不断生成QPixmap *失败

时间:2015-09-02 15:57:27

标签: qt qt4 qimage qpixmap qhash

我使用以下代码生成QPixmap*指针,然后将它们插入到QHash<QString, QPixmap*>中(我将仅显示指针生成代码,因为这是失败的指针)。

QPixmap* MyClass::loadImg(QString fileName)
{
    QImage qimage(fileName);
    if (qimage.isNull()) {
       qDebug() << "Cannot load image " <<  fileName;
    }

    QPixmap *image = new QPixmap(fileName);
    return image;
}

我遇到的问题如下: 对于前200个调用,该方法可以正常工作 - 它在循环中调用,循环遍历目录的图像文件。然后突然QPixmap*开始返回QPixmap(null)没有明显的原因。QImage在发生这种情况时也为空。 我检查过并确保路径正常。此外,我已尝试使用各种图像集,并且总是会发生这种情况 - 它运行时没有问题~200次调用然后开始生成空值。

任何帮助都将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:3)

只是不要在堆上创建它。隐式共享QPixmap。