Qt基础之十九:进程与QProcess

本文详细介绍了Qt中的QProcess类,用于启动和管理外部进程。内容涵盖启动外部程序、通过stdout获取返回数据、错误处理及QProcess的使用注意事项。讲解了start、execute和startDetached的区别,以及如何通过管道进行进程间通信。同时,文章还提供了解决QProcess设置环境变量无效问题的方案。
摘要由CSDN通过智能技术生成

目录

一.启动外部程序

二.通过stdout获取返回数据

三.错误处理

四.QProcess使用注意事项

1.start、execute和startDetached

2.管道

3.实战用例

4.解决QProcess使用setProcessEnvironment环境变量不能生效的问题

五.关于QProcess::startDetached方式启动进程,父进程退出后,子进程依然占用父进程资源的问题


一.启动外部程序

进程就是一个程序的执行实例,也就是正在运行的程序。对操作系统来说,进程就是一个担当分配系统资源CPU时间、内存的实体。
在Qt 中,我们使用QProcess来表示一个进程。这个类可以允许我们的应用程序启动一个新的外部程序,并且与这个程序进行通讯。当外部程序开始启动时,QProcess的状态为Starting;外部程序已经启动时,QProcess的状态为Running,并发送started()信号;当外部层序退出了,QProcess的状态为NotRunning(初始状态),并发送finished()信号。
QProcess使用的一般步骤如如下所示:

QProcess p;
p.start(command, args); //command是要执行的命令,args是参数
p.waitForFinished(); //等待完成
qDebug()<<QString::fromLocal8Bit(p.readAllStandardError());

下面是个简单的例子,通过命令行将Windows D盘Image文件夹中的.jpg后缀改为.png
该指令为:ren *.jpg *.png

QString program = "cmd.exe";// 如果cmd.e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值