在处理 QGraphicsScene 和 QPixmap 时,我遇到了一个问题。我正在按顺序显示由相机捕获的帧。QTimer 对象每 100 毫秒调用一次 updateSingleView() 函数。那是我的内在功能:
void CCIGui::updateSingleView()
{
unsigned char *const img = PGRSystem->SnapShot();
QImage Img(img, 1024, 768, QImage::Format_RGB888);
scenes.at(0)->removeItem(scenes.at(0)->items().at(0));
scenes.at(0)->addPixmap(QPixmap::fromImage(Img));
ui_camViews.at(0).graphicsView->setScene(scenes.at(0));
delete [] img;
}
Gui 正在显示相机的视图,但不幸的是存在内存泄漏,调用时scenes.at(0)->addPixmap(QPixmap::fromImage(Img));
我认为该removeItem
函数应该破坏旧的 QPixmap,但显然不是。你知道为什么会发生泄漏以及如何解决它吗?