定义一个变量作为退出码
static const int RETCODE_RESTART = 773;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ControlServer w;
w.show();
int e = a.exec();
if(e == RETCODE_RESTART)
{
// 传入 qApp->applicationFilePath(),启动自己
QProcess::startDetached(qApp->applicationFilePath(), QStringList());
return 0;
}
return e;
// return a.exec();
}
在退出的地方
void ControlServer ::on_pushButton_clicked()
{
qApp->exit(RETCODE_RESTART);
}