本文介绍利用QProcess实现应用程序重启功能。实现应用程序重启功能在Qt中实现非常简单,需要用到QProcess类一个静态方法:bool startDetached(const QString &program, const QStringList &arguments);
新建一个Qt案例,项目名称为“RestartTest”,基类选择“QWidget”,点击选中创建UI界面复选框,完成项目创建。
UI界面如下:
序号 | 名称 | 类型 | 属性 |
---|---|---|---|
① | pbn_restart | QPushButton | text:Restart |
声明头文件:
private slots:
void on_pbn_restart_clicked();
定义RETCODE_RESTART:
// define a retcode: 773 = 'r'+'e'+'s'+'t'+'a'+'r'+'t' = restart
static const int RETCODE_RESTART = 773;
定义按钮点击槽函数:
//应用程序重启
void Widget::on_pbn_restart_clicked()
{
qApp->exit(RETCODE_RESTART);
}
在main函数中判断退出码是否为“RETCODE_RESTART”,来决定是否重启:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
//return a.exec();
int e = a.exec();
if(e == RETCODE_RESTART)
{
// 传入 qApp->applicationFilePath(),启动自己
QProcess::startDetached(qApp->applicationFilePath(), QStringList());
return 0;
}
return e;
}
完整效果如下:
如果没有看懂的话,完整代码可以参考:https://download.csdn.net/download/didi_ya/86268703
ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~