调试器关闭时如何捕获 Qt 应用程序的退出?

How to capture exiting of Qt Application when shut down by debugger?

我正在使用 Visual Studio 2010 在 Qt 4.8.4 中开发一个 GUI 应用程序。我需要在我的应用程序关闭之前执行一些清理工作,所以我在我的 MainWindow class 中重新实现了 QWidget closeEvent当用户单击 X 或当他们从菜单 select File->Exit 时捕获。那很好用。然而,问题是当我 运行 VS 调试器中的应用程序并且我使用调试器关闭应用程序时,关闭事件不会被触发。我总是可以通过单击“文件”->“退出”或单击“X”来关闭我的应用程序,但有时我会忘记并关闭调试器,所以这真的很烦人。有没有办法在调试器关闭我的应用程序时进行捕获?

据我所知没有。

它的逻辑:调试器是 运行 一个沙箱,当它关闭时,沙箱被释放。您的应用程序在该沙箱中 运行 - 因此当该沙箱变为 freed/closed/destroyed 时,您的应用程序会在没有任何清理的情况下消失。