Проблема заключается в следующем: если приложение закрыто, когда оно ничего не делает, оно корректно завершает работу. Если он активно работает над чем-то (например, ожидает в цикле while), главное окно закроется, но программа продолжит работать в фоновом режиме, что подтверждается открытием диспетчера задач.
Я потратил значительную часть сегодняшнего дня, пытаясь найти решение проблемы и внедрить возможные исправления, но безрезультатно. Кажется, что функция quit () просто ничего не делает. Вот несколько вещей, которые я пробовал:
- Использование
app.connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
. Я знаю, что сигнал сработал, потому что я попытался изменить &app, SLOT(quit())
на qApp, SLOT(aboutQt())
, и окно aboutQt ненадолго появилось.
- Включая
qApp->quit();
в начале функции, которая запускается из кнопки главного окна. Приложение запускается до этой строки, но это не имеет никакого эффекта.
- Использование
processEvents()
для проверки обновления графического интерфейса.
- Включая такие выражения, как
mainWindow.setAttribute(Qt::WA_QuitOnClose);
в main.cpp.
Я просто хочу, чтобы приложение полностью закрывалось при закрытии главного окна.
Я использую библиотеку qextserialport, если это что-то меняет.