> 文章列表 > QPixmap存在的坑,内存泄漏

QPixmap存在的坑,内存泄漏

QPixmap存在的坑,内存泄漏

 QPixmap加载图片的时候,会把图片数据加入到QPixmapCache缓冲区上

如果多次加载,那么内存会被吃掉越来越多

本意QPixmap是用于显示需要比较快的地方,和硬件关联

QPixmap变量之间的赋值,并不会构造新的图片数据内存,而是引用计数+1

当图片数据内存没有对象使用时,即引用计数减为0时
下面的函数可以释放掉这块内存
QPixmapCache::clear();

 

解决方案:如果是图片加载,要是对显示速度无要求,进行一些图像处理的地方

尽量使用QImage.load

绘制的时候再把QImage转成QPixmap即可

ui->label->setPixmap(QPixmap::fromImage(image));

CG素材网