Frage

Ich erstelle derzeit ein Programm in QT, OpenCV, Mac OS X. Ich habe ein Hauptfenster und dann ein separates Fenster, das geöffnet wird. Ich überfahre das neue Fenster mehrere Matrixklone im Konstruktor:

ImageWindow *imageWin = new ImageWindow( 
   cvCloneMat(getData->getMasterRawMat(1)), 
   cvCloneMat(getData->getMasterRawMat(2)), 
   cvCloneMat(getData->getMasterRawMat(3)), 
   cvCloneMat(getData->getMasterRawMat(4)) );
imageWin->show();

Wie verkollekt ich (wo nenne ich CvReleasemat), wenn das neue Fenster geschlossen ist?

War es hilfreich?

Lösung

Sie können das in zB Ihren tun CloseEvent (). Alternativ, wenn Sie verwenden Qt :: wa_deleteonclose für dein Widget -Attribute, Das Widget wird gelöscht, wenn es geschlossen ist, was bedeutet, dass Sie einige Bereinigungsroutinen in den Destruktor aufnehmen können.

Andere Tipps

Erwägen Sie zu verwenden Raii Idiom und Smart Zeiger Und Sie müssen sich nicht erinnern, wann Sie zugewiesene Speicher veröffentlichen müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top