Come deallocare memoria quando una finestra Qt si chiude?
-
21-08-2019 - |
Domanda
Al momento sto Creazione di un programma in Qt, OpenCV, Mac OS X. Ho una finestra principale, e poi una finestra separata che si apre. Io passo la nuova finestra diversi cloni di matrice nel costruttore:
ImageWindow *imageWin = new ImageWindow(
cvCloneMat(getData->getMasterRawMat(1)),
cvCloneMat(getData->getMasterRawMat(2)),
cvCloneMat(getData->getMasterRawMat(3)),
cvCloneMat(getData->getMasterRawMat(4)) );
imageWin->show();
Come faccio a DEALLOCATE (dove chiamo cvReleaseMat), quando la nuova finestra è chiusa?
Soluzione
Si può fare in es CloseEvent () . In alternativa, se si utilizza Qt :: WA_DeleteOnClose per il widget di attributi , il widget sarà cancellato quando è chiuso, il che significa che è possibile inserire alcuni pulita- up di routine nel distruttore.
Altri suggerimenti
Si consiglia di utilizzare RAII idioma e puntatori intelligenti e non sarà necessario ricordare quando rilasciare la memoria allocata.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow