Мое приложение Qt, которое использует QNetworkAccessManager для доступа к Интернету, не будет закрываться после закрытия главного окна, если нет рабочего подключения к Интернету.
Пример приложения (протестировано с Qt 4.8, MSVC2010, Win7 x64):
#include <QtGui/QApplication>
#include <QNetworkReply>
#include <QMainWindow>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow mainWindow;
mainWindow.show();
QNetworkAccessManager * pManager = new QNetworkAccessManager;
QNetworkReply * pReply = pManager->get(QNetworkRequest(QUrl(
"http://www.google.com")));
pReply->abort();
delete pReply;
delete pManager;
// If there is no internet connection, the application will stay alive
// forever after closing the main window.
return a.exec();
}
Я что-то упустил или это ошибка? Если да, какой обходной путь вы предлагаете, чтобы убедиться, что приложение закрывается?
Редактировать:
Я должен исправить себя: пример приложения остается активным только в течение 13 секунд после закрытия главного окна. Это было бы остаться в живых навсегда, если объект QApplication был выделен с использованием new
(что имеет место в моем реальном заявлении).
Задача ещё не решена.
Других решений пока нет …