即使在MainWindow关闭后,Qt app也会保留在内存中

Sha*_*awk 6 qt quit qextserialport

问题如下:如果应用程序在没有主动执行任何操作时关闭,则会正确退出.但是,如果它正在积极处理某些事情(例如,等待一段时间循环),则主窗口将关闭,但程序将继续在后台运行,如打开任务管理器所确认的那样.

我今天花了大量时间来搜索问题并实施可能的修复,但无济于事.似乎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库,如果这有任何区别.

ypn*_*nos 1

我不知道出了什么问题,但当您的插槽实际接收到信号时,您可以exit()从该插槽函数调用作为解决方法。