我使用以下代码生成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次调用然后开始生成空值。
任何帮助都将不胜感激。
谢谢。
答案 0 :(得分:3)
只是不要在堆上创建它。隐式共享QPixmap。