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はカメラのビューを表示していますが、残念ながらメモリリークが発生しています。呼び出したときに、関数は古いQPixmapを破壊するはずだscenes.at(0)->addPixmap(QPixmap::fromImage(Img));
と思いましたが、明らかにそうではありません。removeItem
リークが発生する理由とその解決方法を知っていますか?