一、前言
工作开发中,有客户说,他们想加一个软件重启的功能,于是乎就有了这个功能
二、详情
1.本文采用的定义退出码重启
思路:定义退出码->触发exit(退出码),入口函数处理退出码,这里采用手动点击按钮触发
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->pushButton,QPushButton::clicked,this,&Widget::onRestart);
}
void Widget::onRestart()
{
qDebug()<<"软件重启...";
qApp->exit(931);
}
Widget::~Widget()
{
delete ui;
}
然后main.cpp中处理
#include "widget.h"
#include <QApplication>
#include <QProcess>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
// 重启
int e=a.exec();
if(e==931)
{
QProcess::startDetached(qApp->applicationFilePath());
return 0;
}
return a.exec();
}
2.效果
3.工程demo源代码