当前位置:网站首页>Qt实战案例(56)——利用QProcess实现应用程序重启功能
Qt实战案例(56)——利用QProcess实现应用程序重启功能
2022-08-01 12:49:00 【wendy_ya】
一、项目介绍
本文介绍利用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,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~
边栏推荐
猜你喜欢
随机推荐
SQL函数 SQUARE
浏览器存储
iframe标签属性说明 详解[通俗易懂]
AI目标分割能力,无需绿幕即可实现快速视频抠图
postgresql之page分配管理(二)
【StoneDB Class】入门第二课:StoneDB 整体架构解析
如何使用 Authing 单点登录,集成 Discourse 论坛?
Meshlab&Open3D SOR滤波
PanGu-Coder:函数级的代码生成模型
四足机器人软件架构现状分析
达梦更换正式授权dm.key
那些利用假期学习的职场人,后来都怎么样了?
shell 中的 分发系统 expect脚本 (传递参数、自动同步文件、指定host和要传输的文件、(构建文件分发系统)(命令批量执行))
How do we do full-link grayscale on the database?
力扣160题,相交链表
Aeraki Mesh Joins CNCF Cloud Native Panorama
MySQL调优
10年稳定性保障经验总结,故障复盘要回答哪三大关键问题?|TakinTalks大咖分享
PyTorch 进阶之路:在 GPU 上训练深度神经网络
tensorflow2.0手写数字识别(tensorflow手写体识别)