问题如下:如果应用程序在没有主动做任何事情时关闭,它会正确退出。但是,如果它正在积极地处理某些事情(例如,在 while 循环中等待),则主窗口将关闭,但程序将继续在后台运行,正如打开任务管理器所确认的那样。
我今天花了很大一部分时间搜索问题并实施可能的修复,但无济于事。似乎 quit() 函数根本没有做任何事情。以下是我尝试过的一些事情:
- 使用
app.connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
. 我知道信号被触发了,因为我尝试更改&app, SLOT(quit())
为qApp, SLOT(aboutQt())
并短暂弹出了 aboutQt 窗口。 - 包括
qApp->quit();
从主窗口按钮运行的函数的开头。应用程序确实运行到该行,但没有任何效果。 - 用于
processEvents()
确保 GUI 正在更新。 - 包括
mainWindow.setAttribute(Qt::WA_QuitOnClose);
main.cpp 中的语句。
我只希望应用程序在主窗口关闭时完全退出。
我正在使用 qextserialport 库,如果这有什么不同的话。