[英]Closing Qt console application terminates process inside exec() call and doesn't reach to scope out from main()
這是我在Qt
控制台應用程序中Qt
的問題:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyApp app;
app.start();
return a.exec();
} // <== MyApp destructor must be called to free up resourcs but not reach here
Qt 版本: 5.4.1
平台: Windows 10
我已經在Window 7
遇到了這個問題並且沒有解決這個問題。
問題是exec
調用在退出主事件循環后使用exit
系統調用在 Windows 中終止進程並且不返回。
另一個解決方案,例如使用QCoreApplication
類的aboutToQuit
信號不起作用。
直接來自Qt 文檔:
我們建議您將清理代碼連接到 aboutToQuit() 信號,而不是將它放在應用程序的 main() 函數中,因為在某些平台上 exec() 調用可能不會返回。 例如,在 Windows 上,當用戶注銷時,系統會在 Qt 關閉所有頂級窗口后終止進程。 因此,無法保證應用程序在 exec() 調用之后有時間退出其事件循環並在 main() 函數的末尾執行代碼。
你說你試過aboutToQuit()
沒有運氣,但你絕對應該專注於aboutToQuit()
工作。 您能否更新粘貼的代碼以包含 aboutToQuit 嘗試,以便我們可以為您提供幫助?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.