graphicsView QObject でビデオを表示するコードを書いています。こんなふうになります:
void MainWindow::UpdateVideo()
{
    cap >> frame;
    cvtColor(frame, frame,CV_BGR2RGB);
    QImage Qframe = QImage((uchar*) frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888);
    QPointer<QGraphicsScene> VideoScene = new QGraphicsScene;
    VideoScene->addPixmap(QPixmap::fromImage(Qframe));
    ui->VideoView->setScene(VideoScene);
    ui->VideoView->show();
}
void MainWindow::on_pushButton_2_clicked()
{
    cap.open("test1.mpg");
    if(!cap.isOpened())
       cout<<"CANNOT OPEN FILE"<<endl; //or you can put some error message
    QPointer<QTimer> UpdateVideo = new QTimer;
    connect(UpdateVideo, SIGNAL(timeout()), this, SLOT(UpdateVideo()));
    UpdateVideo->start(10);
}
ご覧のとおり、スロット on_pushButton_2_clicked() は、最初のクリックの後、10ms ごとにタイマーを使用してスロット UpdateVideo() を呼び出します。ビデオを問題なく表示したいのですが、数秒後に qt クリエーターのアプリケーション出力に次のエラーが表示されます。
Qimage: メモリ不足です。ヌル画像を返します。
そして、graphicsView フレームが空白になります。メモリリークの場所を教えてください。