重启应用程序有两个常见的引用场景,切换账号和保存特定配置后需要重启。有时候程序运行出现问题,也希望能够通过重启来解决。
重启实际上就是关闭当前应用程序,然后再启动一个新的进程执行当前应用程序。
一.效果
在Qt中,有两种方法可以实现重启,QProcess和事件循环。
二.QProcess
关于QProcess,详见Qt基础之十九:进程与QProcess
void Widget::on_rebootButton_clicked
{
qApp->closeAllWindows();
QString program = QApplication::applicationFilePath();
QStringList arguments = QApplication::arguments();
QString workingDirectory = QDir::currentPath();
QProcess::startDetached(program, arguments, workingDirectory);
}
注意这里退出应用程序用的是qApp->closeAllWindows(),而不是qApp->exit()或者qApp->quit()
qApp->exit()和qApp-&g