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还提供了众多的方法供大家选择,如果只是简单管理,这三个就够了,但是要控制何时启动和关闭。

相关推荐
凡人的AI工具箱2 分钟前
15分钟学 Go 第 54 天 :项目总结与经验分享
开发语言·人工智能·后端·算法·golang
小春学渗透5 分钟前
DAY110代码审计-PHP框架开发篇&ThinkPHP&版本缺陷&不安全写法&路由访问&利用链
开发语言·安全·web安全·php
奈葵7 分钟前
C语言字符函数和字符串函数
c语言·开发语言
robin_suli17 分钟前
Java多线程八股(一), 锁策略,synchronized锁策略详解
java·开发语言·八股
手握风云-19 分钟前
零基础Java第十八期:图书管理系统
java·开发语言
斗-匕24 分钟前
Java 语言的强大特性
java·开发语言·python
夕泠爱吃糖27 分钟前
什么是C++中的常量表达式?有什么用途?
开发语言·c++
AitTech1 小时前
JavaScript判断用户设备类型:PC端与移动端的区分方法
开发语言·javascript·ecmascript
SAP学习成长之路1 小时前
如何在SM30生成的维护表中增加选择框 CheckBox
开发语言·数据库·sap·健康医疗·abap·代码规范
羊小猪~~1 小时前
C/C++语言基础--initializer_list表达式、tuple元组、pair对组简介
c语言·开发语言·c++·vscode·list·c++20·visual studio