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

相关推荐
oldmao_20005 分钟前
第八章 设计并发代码
开发语言·c++·多线程编程·并发编程
SomeB1oody8 分钟前
【Python深度学习】2.1. 卷积神经网络(CNN)模型理论(基础):卷积运算、池化、ReLU函数
开发语言·人工智能·python·深度学习·机器学习·cnn
Java面试题总结9 分钟前
2026年Java面试题最新整理,附白话答案
java·开发语言·jvm·笔记·spring·intellij-idea
大鹏说大话14 分钟前
前端性能优化全链路指南:从资源加载到渲染的极致体验
开发语言
芒果披萨15 分钟前
日志管理 logging
java·开发语言·c++
unicrom_深圳市由你创科技19 分钟前
C# 如何实现对象序列化
开发语言·c#
夜珀24 分钟前
AtomGit算力连接与实战全攻略
开发语言·人工智能
xyq202431 分钟前
SQLite 命令详解
开发语言
xinhuanjieyi35 分钟前
php setplayersjson实现类型转换和文件锁定机制应对高并发
android·开发语言·php
前端 贾公子1 小时前
uniapp中@input修改input内容不生效 | 过滤赋值无效 | 连续非法字符不更新的问题
开发语言·前端·javascript