如何在Qt窗口关闭时释放内存?

Sam*_*Sam 1 c++ qt opencv memory-management

我目前正在Qt,OpenCv,Mac OS X中创建一个程序.我有一个主窗口,然后是一个打开的单独窗口.我在构造函数中传递了几个矩阵克隆的新窗口:

ImageWindow *imageWin = new ImageWindow( 
   cvCloneMat(getData->getMasterRawMat(1)), 
   cvCloneMat(getData->getMasterRawMat(2)), 
   cvCloneMat(getData->getMasterRawMat(3)), 
   cvCloneMat(getData->getMasterRawMat(4)) );
imageWin->show();
Run Code Online (Sandbox Code Playgroud)

当新窗口关闭时,如何解除分配(我在哪里调用cvReleaseMat)?

Ari*_*yat 8

你可以在你的closeEvent()中做到这一点.或者,如果对窗口小部件属性使用Qt :: WA_DeleteOnClose,则窗口小部件在关闭时将被删除,这意味着您可以在析构函数中放置一些清理例程.