QT笔记 - QProcess读取外部程序(进程)消息

简要介绍

QProcess可用于在当前程序中启动独立的外部程序(进程),并进行通讯,通讯原理是通过程序的输入或输出流,即通过c中的printf()和或c++的std::cout等。

函数

  1. void QProcess::start(const QString & program, const QStringList & arguments = {}, OpenMode mode = ReadWrite)
  2. void QProcess::readyReadStandardOutput()
  3. QByteArray QProcess::readAllStandardOutput()
  4. bool QProcess::waitForFinished(int msecs = 30000)

函数说明

  1. 启动目标程序。形参: program:目标程序启动目录,包含程序名称及后缀;arguments:参数,可以向目标程序的main()函数传递两个参数;mode:读写打开模式。
  2. 是个信号函数,目标程序有即时输出时触发,可用于接收目标程序的实时输出
  3. 读取输出
  4. 等待目标程序完成(退出),注意期间主程序会陷入冻结状态。形参:msec:等待时长,注意,该时间到期后将主动关闭目标程序,默认30000毫秒,-1时可无限时长等待。

示例

主程序:

    QProcess process;// process.setProcessChannelMode(QProcess::MergedChannels);process.start("C:\\myapp\\ProcessTest.exe");// 实时读取process.connect(&process, &QProcess::readyReadStandardOutput, [&](){qDebug() << "main - " << process.readAllStandardOutput();});if(process.waitForFinished(-1)){qDebug() << "main - Process:\"" << process.program() << "\" Finished";}// // 或目标程序退出后读取全部// if(process.waitForFinished(-1)){//     qDebug() << "main - " << process.readAllStandardOutput();// } else {//     qDebug() << "main - 2";// }

目标程序:

void Widget::on_pushButton_clicked()
{std::cout << "Widget::on_pushButton_clicked - " << ui->lineEdit->text().toStdString() << std::endl;std::cout << std::flush;
}

测试结果输出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/417654.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统分析师7:数学与经济管理

文章目录 1 图论应用1.1 最小生成树1.2 最短路径1.3 网络与最大流量 2 运筹方法2.1 线性规划2.2 动态规划2.2.1 供需平衡问题2.2.2 任务指派问题 3 预测与决策3.1 不确定型决策分析3.2 风险型决策3.2.1 决策树3.2.2 决策表 4 随机函数5 数学建模 1 图论应用 ①最小生成树 连接…

Android 存储之 SharedPreferences 框架体系编码模板

一、SharedPreferences 框架体系 1、SharedPreferences 基本介绍 SharedPreferences 是 Android 的一个轻量级存储工具&#xff0c;它采用 key - value 的键值对方式进行存储 它允许保存和读取应用中的基本数据类型&#xff0c;例如&#xff0c;String、int、float、boolean …

解决Type-C接口供电难题:LDR6328取电协议芯片的关键作用

在智能设备快速发展的今天&#xff0c;Type-C接口因其便捷性、高速传输能力和双向充电功能&#xff0c;已成为众多设备的标准接口。然而&#xff0c;随着设备功率需求的不断提升&#xff0c;Type-C接口的供电难题也日益凸显。为解决这一难题&#xff0c;LDR6328取电协议芯片应运…

HTB-Pennyworth(cve查询 和 exp使用)

前言 各位师傅大家好&#xff0c;我是qmx_07,今天给大家讲解Pennyworth靶场 渗透过程 信息搜集 服务器端口开放了8080http端口 访问网站 服务器使用jenkins cms系统&#xff0c;版本是2.289.1 通过弱口令爆破&#xff0c;账户是root,密码是password 通过命令执行nday 连…

2.1ceph集群部署准备-硬件及拓扑

硬件配置及建议 时至今日&#xff0c;ceph可以运行在各种各样的硬件平台上&#xff0c;不管是传统的x86架构平台(intel 至强系列、基于amd的海光系列等)&#xff0c;还是基于arm的架构平台(比如华为鲲鹏)&#xff0c;都可以完美运行ceph集群&#xff0c;展现了其强大的适应能力…

结合AI图片增强、去背景,如何更好的恢复旧照片老照片?

随着数字时代的到来&#xff0c;我们越来越依赖于技术来保存和恢复珍贵的记忆。在众多技术中&#xff0c;人工智能&#xff08;AI&#xff09;在恢复旧照片方面展现出了其独特的魅力和潜力。AI不仅能够修复破损的照片&#xff0c;还能够增强图像质量&#xff0c;让那些褪色的记…

WPS中JS宏使用说明(持续优化...)

前言 好久没发文章了&#xff0c;今天闲来无事发篇文章找找之前的码字感觉。 正文 最近在写教案&#xff0c;发现之前的技术又可以派上用场了。就是JS&#xff0c;全称JavaScript&#xff0c;这个语言太强大了&#xff0c;我发现WPS里的宏现在默认就是JS。功能选项如下图&…

开源模型应用落地-qwen2-7b-instruct-LoRA微调合并-ms-swift-单机单卡-V100(十三)

一、前言 本篇文章将使用ms-swift去合并微调后的模型权重&#xff0c;通过阅读本文&#xff0c;您将能够更好地掌握这些关键技术&#xff0c;理解其中的关键技术要点&#xff0c;并应用于自己的项目中。 二、术语介绍 2.1. LoRA微调 LoRA (Low-Rank Adaptation) 用于微调大型语…

算法练习题14——leetcode84柱形图中最大的矩形(单调栈)

题目描述&#xff1a; 解题思路&#xff1a; 要解决这个问题&#xff0c;我们需要找到每个柱子可以扩展的最大左右边界&#xff0c;然后计算以每个柱子为高度的最大矩形面积。 具体步骤如下&#xff1a; 计算每个柱子左侧最近的比当前柱子矮的位置&#xff1a; 使用一个单调…

vue3获取视频时长、码率、格式等视频详细信息

前言&#xff1a; 我们在上传视频需要视频的帧数等信息的时候&#xff0c;上传组件无法直接读取帧数等信息 方法&#xff1a;通过mediainfo.js来获取视频的帧率、总帧数和视频的总时长 mediainfo.js地址&#xff0c;想详细了解的可以去看看git地址&#xff1a;https://githu…

【最新华为OD机试E卷-支持在线评测】查找充电设备组合(200分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

【机器学习-神经网络】循环神经网络

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科&#xff0c;通过算法和模型让计算机从数据中学习&#xff0c;进行模型训练和优化&#xff0c;做出预测、分类和决策支持。Python成为机器学习的首选语言&#xff0c;…

软件测试基础总结+面试八股文

一、什么是软件&#xff1f; 软件是计算机系统中的程序和相关文件或文档的总称。 二、什么是软件测试&#xff1f; 说法一&#xff1a;使用人工或自动的手段来运行或测量软件系统的过程&#xff0c;以检验软件系统是否满足规定的要求&#xff0c;并找出与预期结果之间的差异…

C++笔记15•数据结构:二叉树之二叉搜索树•

二叉搜索树 1.二叉搜索树 概念&#xff1a; 二叉搜索树又称二叉排序树也叫二叉查找树&#xff0c;它可以是一棵空树。 二叉树具有以下性质: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点的值都…

Ubuntu 下载/安装

官网 Enterprise Open Source and Linux | UbuntuUbuntu is the modern, open source operating system on Linux for the enterprise server, desktop, cloud, and IoT.https://ubuntu.com/ 下载 安装 完结撒花&#xff01;

论文学习(一):基于遥感技术的凉山州森林火险预测方法研究

文章目录 摘要部分一、绪论二、研究区历史火情分析2.1凉山州森林火灾年际变化特征2.2凉山州森林火灾月际变化特征2.3凉山州森林火灾空间分布特征2.4森林火灾等级与起火原因分析 三、数据与方法3.1数据来源3.2数据预处理3.3研究方法3.3.1逻辑回归&#xff1a;最大似然估计3.3.2决…

C++知识点总结

一、C简介 1、c的特点&#xff1a; 1、在支持C语言的基础上&#xff0c;全面支持面向对象编程 2、编程领域广泛&#xff0c;功能强大 3、C语言标准一直在保持更新 4、支持底层操作的面向对象编程语言 5、在面向对象编程语言中执行效率高 2、面向过程与面向对象的区别 面向过程是…

IDEA 安装,激活,使用,常用插件

1. 下载安装&#xff0c; 自行下载 2.打开到这步立马退出 3.使用工具 点击工具 等待几秒 查看效果。 恭喜你&#xff0c;成功&#xff01;&#xff01;&#xff01;&#xff01; 恭喜你&#xff0c;成功&#xff01;&#xff01;&#xff01;&#xff01; 恭喜你&#xff0…

移动硬盘显示需要格式化怎么办?教你快速应对

在日常使用电脑的过程中&#xff0c;移动硬盘因其便携性和大容量存储的特点&#xff0c;成为了许多用户备份和传输数据的重要工具。 然而&#xff0c;有时当我们连接移动硬盘到电脑时&#xff0c;可能会遇到一个令人头疼的问题——系统提示“移动硬盘需要格式化”。面对这种情…

ZPC显控一体机,精彩不止一面!

显控一体机的应用&#xff0c;有很多场景会遇到自带显示屏固定不灵活、尺寸不够大等问题。扩展屏幕便是一个很好的解决方案&#xff01;本文将带您解锁ZPC显控一体机的“多面精彩”。 ZPC简介 ZPC系列显控一体机 是广州致远电子全新研发的集“显示”“控制”一体化的高性能显控…