답변:
QApplication은 QCoreApplication에서 파생되어 quit()
의 공개 슬롯 인 을 상속 QCoreApplication
하므로 QApplication::quit()
와 사이에는 차이가 없습니다 QCoreApplication::quit()
.
우리가 QCoreApplication::quit()
그것 의 문서에서 읽을 수 있듯이 "응용 프로그램이 리턴 코드 0 (성공)으로 종료하도록 지시합니다." . 파일 손상을 발견하여 종료하려는 경우 성공을 의미하는 리턴 코드 0으로 종료하지 않을 수 있으므로 QCoreApplication::exit()
, 일반적으로 오류를 나타내는 0이 아닌 returnCode를 제공 할 수 있으므로 호출해야 합니다.
이 점에 유의하지하는 것이 중요하다 "않습니다 아무것도 이벤트 루프가 실행되고 있지 않은 경우,이 함수 (()을 QCoreApplication :: 출구)" 그래서 경우에 당신이 전화를해야합니다 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();