Qt实战案例(56)——利用QProcess实现应用程序重启功能

一、项目介绍

本文介绍利用QProcess实现应用程序重启功能。实现应用程序重启功能在Qt中实现非常简单,需要用到QProcess类一个静态方法:bool startDetached(const QString &program, const QStringList &arguments);

二、项目基本配置

新建一个Qt案例,项目名称为“RestartTest”,基类选择“QWidget”,点击选中创建UI界面复选框,完成项目创建。

三、UI界面设置

UI界面如下:
在这里插入图片描述

序号 名称 类型 属性
pbn_restart QPushButton text:Restart

四、主程序实现

4.1 widget.h头文件

声明头文件:

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;

4.2 widget.cpp源文件

定义按钮点击槽函数:

//应用程序重启
void Widget::on_pbn_restart_clicked()
{
    
    
    qApp->exit(RETCODE_RESTART);
}

4.3 main.cpp源文件

在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,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~

猜你喜欢

转载自blog.csdn.net/didi_ya/article/details/126087475