目录
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