Qtプログラムを終了するにはどうすればよいですか?たとえば、データファイルを読み込んでファイルの破損を発見し、ユーザーがこのアプリケーションを終了するか、データファイルを再起動する必要がありますか?Qtプログラムを終了する正しい方法は?
万一I:
- コール
exit(EXIT_FAILURE)
- コール
QApplication::quit()
- コール
QCoreApplication::quit()
の差(2)及び(3)?
Qtプログラムを終了するにはどうすればよいですか?たとえば、データファイルを読み込んでファイルの破損を発見し、ユーザーがこのアプリケーションを終了するか、データファイルを再起動する必要がありますか?Qtプログラムを終了する正しい方法は?
万一I:
exit(EXIT_FAILURE)
QApplication::quit()
QCoreApplication::quit()
の差(2)及び(3)?
はQApplicationはQCoreApplication由来し、それによってQCoreApplication
のパブリックスロットので、QApplication::quit()
とQCoreApplication::quit()
差がないquit()
を継承しています。
quit()
のドキュメントで読むことができるので、は、 "戻りコード0(成功)で終了するようにアプリケーションに指示します。"。ファイルの破損が検出されたために終了したい場合は、成功を意味する戻りコード0で終了したくない場合があるので、通常はエラーを示す0以外のreturnCodeを指定できるので、QCoreApplication::exit()
を呼び出す必要があります。
あなたがexit(EXIT_FAILURE)
を呼び出す必要があり、その場合のよう、「イベントループが実行されていない場合は、この機能(QCoreApplication ::出口は())何もしない」ことに注意することが重要です。
qApp.exit();
に電話することができます。私はいつもそれを使用し、それに問題はなかった。
アプリケーションがコマンドラインアプリケーションの場合、実際には終了コードを返すことができます。コードの内容はあなた次第です。
あなたは(メインのアプリケーションを閉じる必要があれば)あなたはQtのジャンビを使用している場合にOpenSSLが
これはコンパイルできないと思います。 app.exit(0)はintを返しません。 'if(!QSslSocket :: supportsSsl()){return 0;};'を使用してください。この行でapp.exec()が呼び出されていないため、app.exit(0)は何もしません。QCoreApplication :: exit()のドキュメントを参照してください:_イベントループが実行されていない場合、この関数は何もしません._ –
がインストールされていない場合、プログラムは、これはすべきで、終了します
int main(int argc, char *argv[]){
QApplication app(argc, argv);
...
if(!QSslSocket::supportsSsl()) return app.exit(0);
...
return app.exec();
}
このコードを使用することができます作品:
QApplication.closeAllWindows();
Qt5で動作しない – YumYumYum
Qt5これが成功QApplication :: quit() – YumYumYum
以下を実行する必要がありました: 'qApp-> exit();' –