Linux Qt编程——在程序中启动其他应用、脚本

本文介绍了在Linux环境下,使用Qt编程时如何启动其他应用程序和执行脚本。通过system函数的简单实现,以及QProcess类的使用,探讨了对新进程的控制和错误处理。此外,还提到了确保唯一启动应用的方法,如先终止已运行的实例再启动。
摘要由CSDN通过智能技术生成

       我们在编程过程中,经常会遇到这样的需求,点击一下按钮,启动另外一个应用程序,或者执行一个脚本。你一定觉得这个多简单啊,有什么可写的?其实实现同一个功能,不同的开发人员写出的代码可能千差万别,执行效率,容错率,是否有唯一启动保护等……当然,我们还是需要通过衡量具体的需求和环境来设计自己的代码,量体裁衣。

      最简单的,我们可以通过system直接启动一个应用程序或者脚本:

system("./helloworld");
system("./hello.sh");

      操作简单,但是我们可以很清晰的看到弊端:虽然很顺利的匹出一个进程去执行另外一个应用,但是我们拿不到这个新进程的任何东西,也就失去了对这个进程的控制权。所以我们可以尝试利用QProcess:

void Widget::startApps(QString str)
{ 
    QProcess *proc = new QProcess();
    proc->start(str);  
}

      拿到proc指针,我们可以做一些我们想做的事情。做嵌入式应用编程的朋友可能时常会受到环境变量的困扰,很纳闷为什么总是找不到这库那库。所以我们可以再完善一下:

void Widget::startApps(QString str)
{ 
    QProcess *proc = new QProcess();
    proc-&g
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值