Qt通过QProcess调用第三方进程

我们在运行Qt程序时,有时需要调用第三方程序,这时就可以用QProcess类。具体如下:

一. 启用进程之前

我们需要在头文件中定义一个私有变量指针,为了使他能长时间运行,定义为指针。

cpp 复制代码
#include <QProcess>
class widget1....
{
private:
    QProcess* pro;
}

在cpp中我们将指针初始化

pro = nullptr;

pro = new QProcess(this);

其实这个时候就可以考虑怎么用了,你可以整个控件的槽函数手动触发,也可以绑定特定的槽函数在特定情况下触发。

然后我们在槽函数中需要创建一个工作目录,

cpp 复制代码
void widget1::mySlot()
{
    pro.setWorkingDirectory("../WORKDIR/");

}

二.启动进程

启动进程主要用start()函数,它启动起来后进程由当前类来管理,当前类析构时,进程关闭。

cpp 复制代码
pro.start("we.exe");

这里只用了exe的名称,这时因为前面我们已经设置了工作目录。

三.销毁进程

销毁进程主要是terminate函数或者kill

cpp 复制代码
pro.terminate();

该进程会被关闭,当然,QProcess还提供了众多的方法供大家选择,如果只是简单管理,这三个就够了,但是要控制何时启动和关闭。

相关推荐
宋一诺334 分钟前
12-Union联合类型注解
java·开发语言
安冬的码畜日常23 分钟前
【玩转 JS 函数式编程_014】4.1 JavaScript 纯函数的相关概念(下):纯函数的优势
开发语言·javascript·ecmascript·函数式编程·js·functional·原生js
影子落人间27 分钟前
JAVA使用SM2算法生成密钥对加密解密加签验签
java·开发语言·算法·安全
LIjin_100629 分钟前
pytorch resnet源码分析
开发语言·python·深度学习
木子020431 分钟前
Java设计模式
java·开发语言·设计模式
弘毅_Hao39 分钟前
Qt 窗口的模态类型
qt·模态
Lill_bin39 分钟前
JDK 17 新特性概览
java·开发语言·windows·python·中间件·rocketmq·策略模式
code bean41 分钟前
【halcon/C#】弧度和角度的转换
开发语言·c#·halcon
通信仿真实验室44 分钟前
(33)MATLAB信号分析之信号功率、噪声功率、与信噪比
开发语言·算法·matlab·语音识别·信号处理
qq_172805591 小时前
GO Practise
开发语言·后端·golang·go