Qt MainWindow关闭窗口后报程序异常结束的错误

错误记录

在做TCP的客户端和服务器,客户端和服务器在一个MainWindow的子界面中,当直接关闭主窗口时报程序异常结束的错误。但是关闭子界面后再关闭主界面不会报错。

解决步骤

  • 通过一步一步放qDebug();发现直接关闭主窗口时不会执行子界面的CloseEvent()事件,但是会执行子界面的析构函数。
  • 我的代码在子界面的关闭事件中处理了socket和server对象,所以先关闭子界面后关闭主界面不会报错,
  • 简单来说就一句话,把子界面中关闭事件中的代码复制到子界面的析构函数中
  • 确保创建的对象都加了this 即Socket = new QTcpSocket(this);

你可能感兴趣的:(qt,开发语言)