错误记录
在做TCP的客户端和服务器,客户端和服务器在一个MainWindow的子界面中,当直接关闭主窗口时报程序异常结束的错误。但是关闭子界面后再关闭主界面不会报错。
解决步骤
- 通过一步一步放qDebug();发现直接关闭主窗口时不会执行子界面的CloseEvent()事件,但是会执行子界面的析构函数。
- 我的代码在子界面的关闭事件中处理了socket和server对象,所以先关闭子界面后关闭主界面不会报错,
- 简单来说就一句话,把子界面中关闭事件中的代码复制到子界面的析构函数中
- 确保创建的对象都加了this 即
Socket = new QTcpSocket(this);