是否可以在崩溃后重新启动 qt 应用程序?就像那些会自行重启的windows服务一样。如果是这样,我该怎么做?我试过这样的代码:
#define RESTART_CODE 1000
int main(int argc, char *argv[])
{
int return_from_event_loop_code;
QPointer<QApplication> app;
QPointer<MainWindow> main_window;
do
{
if(app) delete app;
if(main_window) delete main_window;
app = new QApplication(argc, argv);
main_window = new MainWindow(app);
return_from_event_loop_code = app->exec();
}
while(return_from_event_loop_code==RESTART_CODE)
return return_from_event_loop_code;
}
但是没有效果... 我现在该怎么办?
最佳答案
创建另一个运行您的应用程序的 qt 应用程序。
#include <QApplication>
#include "QProcess"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QProcess aProcess;
QString exe = "Your process name with exact path";
QByteArray myOut;
while(1)
{
aProcess.start(exe);
//aProcess.waitForStarted();
//myOut = aProcess.readAllStandardOutput();
//printf("%s",myOut.constData());
aProcess.waitForFinished(-1);
//QString output(aProcess.readAllStandardOutput());
myOut = aProcess.readAllStandardOutput();
printf("%s",myOut.constData());
}
return a.exec();
}
此程序会在您的应用程序崩溃或关闭时重新启动
关于qt - 崩溃后如何重新启动qt应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489644/