问题如下:如果应用程序在没有主动执行任何操作时关闭,则会正确退出。但是,如果它正在积极处理某些事情(例如,等待一段时间循环),则主窗口将关闭,但程序将继续在后台运行,如打开任务管理器所确认的那样。
我今天花了大量时间来搜索问题并实施可能的修复,但无济于事。似乎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);
等语句。我只是希望应用程序在主窗口关闭时完全退出。
我正在使用qextserialport库,如果这有任何区别的话。
答案 0 :(得分:1)
我不知道什么是错的,但是当您的插槽实际收到信号时,您可以从该插槽功能中调用exit()
作为解决方法。