回答:
QApplicationはQCoreApplication由来し、それによって継承されるquit()
のパブリックスロットであるQCoreApplication
ので、差がないQApplication::quit()
とはQCoreApplication::quit()
。
我々は、のドキュメントで読むことができるようQCoreApplication::quit()
、それを「戻りコード0(成功)で終了したアプリケーションを通知します。」。ファイルの破損を発見したために終了する場合は、成功を意味する戻りコード0で終了したくないQCoreApplication::exit()
場合があります。そのため、規則によりエラーを示す非ゼロのreturnCodeを提供できるため、呼び出す必要があります。
「イベントループが実行されていない場合、この関数(QCoreApplication :: exit())は何もしない」ことに注意することが重要ですexit(EXIT_FAILURE)
。その場合は、を呼び出す必要があります。
Qt Jambiを使用している場合、これは機能するはずです。
QApplication.closeAllWindows();
main()からアプリケーションを閉じる必要がある場合は、このコードを使用できます
int main(int argc, char *argv[]){
QApplication app(argc, argv);
...
if(!QSslSocket::supportsSsl()) return app.exit(0);
...
return app.exec();
}
OpenSSLがインストールされていない場合、プログラムは終了します
if(!QSslSocket::supportsSsl()) {return 0;};
ます。この行ではapp.exec()が呼び出されていないため、app.exit(0)は何もしません。QCoreApplication:: exit()のドキュメントを参照してください。イベントループが実行されていない場合、この関数は何もしません。
//How to Run App
bool ok = QProcess::startDetached("C:\\TTEC\\CozxyLogger\\CozxyLogger.exe");
qDebug() << "Run = " << ok;
//How to Kill App
system("taskkill /im CozxyLogger.exe /f");
qDebug() << "Close";
qApp->exit();