Проблема в следующем: если приложение закрыто, пока оно ничего активно не делает, оно корректно завершает работу. Однако, если он активно над чем-то работает (например, ожидает в цикле 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, если это имеет значение.
qextserialport
, насколько я знаю, темы не создает. - person Lol4t0   schedule 12.01.2012