3

我正在使用以下代码来生成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 次调用中运行没有问题,然后开始生成空值。

任何帮助,将不胜感激。

谢谢你。

4

1 回答 1

3

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

于 2015-09-02T16:31:41.453 回答