QApplication wywodzi się z QCoreApplication i tym samym dziedziczy quit()
publiczną sekcję QCoreApplication
, więc nie ma różnicy między QApplication::quit()
i QCoreApplication::quit()
.
Jak możemy przeczytać w dokumentacji QCoreApplication::quit()
, „mówi aplikacji, aby zakończyła pracę z kodem powrotu 0 (powodzenie)”. . Jeśli chcesz zakończyć, ponieważ QCoreApplication::exit()
odkryłeś uszkodzenie pliku, możesz nie chcieć kończyć z kodem powrotu zero, co oznacza sukces, więc powinieneś wywołać, ponieważ możesz podać niezerowy kod returnCode, który zgodnie z konwencją wskazuje na błąd.
Należy zauważyć, że „jeśli pętla zdarzeń nie jest uruchomiona, ta funkcja (QCoreApplication :: exit ()) nic nie robi” , więc w takim przypadku należy wywołać exit(EXIT_FAILURE)
.
qApp->exit();
Jeśli używasz Qt Jambi, powinno to działać:
źródło
jeśli chcesz zamknąć aplikację z main (), możesz użyć tego kodu
int main(int argc, char *argv[]){ QApplication app(argc, argv); ... if(!QSslSocket::supportsSsl()) return app.exit(0); ... return app.exec(); }
Program zostanie zakończony, jeśli OpenSSL nie zostanie zainstalowany
źródło
if(!QSslSocket::supportsSsl()) {return 0;};
. Ponieważ app.exec () nie została wywołana w tym wierszu, app.exit (0) nic nie robi, zobacz dokumentację QCoreApplication :: exit (): Jeśli pętla zdarzeń nie jest uruchomiona, ta funkcja nic nie robi.//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";
przykład
źródło