QNetworkAccessManager を使用してインターネットにアクセスする Qt アプリケーションは、インターネット接続が機能していない場合、メイン ウィンドウを閉じた後に終了しません。
サンプル アプリケーション (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