用QT写一个基于工业相机的测试软件时遇到的一个问题,窗口关闭后进程不结束,且内存不释放。
经过一通操作后,什么delete、exit()、release等都用了,无解。。
最后终于找到了解决方法。
先简单写一下概况:
previous:
软件启动后,就将相机的帧与主程序的信号槽连接了,软件中其他处理都要用到帧数据
//连接图像信号与槽 connect(&m_Camera,&CCamera_Tupu::SgalSendOriData,this, &MainWindow::SlotGetFrame,Qt::BlockingQueuedConnection);
遇到的问题:
运行后,软件一切正常,但是运行停止后,进程不停止,且内存不释放
解决方法:
在析构函数处加上断开连接代码
MainWindow::~MainWindow() { disconnect(&m_Camera,&CCamera::SgalSendOriData,this, &MainWindow::SlotGetFrame); QThread::msleep(100); delete m_pdata; delete ui; }
问题解决。