【发布时间】:2010-11-24 09:09:37
【问题描述】:
在处理 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,但显然不是。您知道为什么会发生泄漏以及如何解决吗?
【问题讨论】:
-
什么版本的 Qt?我在 4.6 上遇到了一些问题。?在 Windows 上。
标签: c++ qt qgraphicsview