本文参考自QProcess的官方文档的Detailed Description。

当外部程序有新的标准输出数据可用时,QProcess会发出readyReadStandardOutput()信号,接收到这个信号后,我们可以使用readAllStandardOutput()来获取输出。

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>class QPushButton;class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);private slots:void clickSlot();private:QPushButton *pushButton;
};#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include <QPushButton>
#include <QCoreApplication>
#include <QDebug>
#include <QProcess>Widget::Widget(QWidget *parent): QWidget(parent)
{this->resize(400, 300);pushButton = new QPushButton(this);pushButton->setText("PushButton");pushButton->show();connect(pushButton, &QPushButton::clicked, this, &Widget::clickSlot);
}void Widget::clickSlot()
{qDebug() << "[main process ID: " << QCoreApplication::applicationPid() << "]\n";QProcess *process = new QProcess;QString program = "C:/Users/jz/Desktop/untitled13.exe";connect(process, &QProcess::readyReadStandardOutput, this, [=](){qDebug() << process->readAllStandardOutput();});connect(process, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), [ = ](int exitCode, QProcess::ExitStatus exitStatus){qDebug() << "untitled13.exe process finish." << exitCode << exitStatus;});process->start(program);qDebug() << "[untitled13.exe process ID: " << process->processId() << "]";
}

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

生成外部程序untitled13.exe的代码:

#include <iostream>
#include <windows.h>
using namespace std;int main()
{int i = 0;while (i < 10){cout << ++i << endl;Sleep(1000);}return 0;
}

输出结果:

图中1~10是逐秒输出的,符合我们的预期。

QProcess开启外部程序,实时获取该程序的标准输出相关推荐

  1. python爬虫+网页版微信实时获取消息程序

    项目需求: 目的是24小时爬取各种软件的讯息并且以一种统一的方式集中发送给自己. 实现方法: 利用python的requests库以及wxpy库,前者用来爬取网页,后者用来将爬到的内容发送给自己. 程 ...

  2. android获取小程序音频时长,最新微信小程序获取音频时长与实时获取播放进度...

    #微信小程序获取音频时长与实时获取播放进度 在小程序官方文档中 audio 注意:1.6.0 版本开始,该组件不再维护.建议使用能力更强的 wx.createInnerAudioContext 接口 ...

  3. 最新微信小程序获取音频时长与实时获取播放进度

    #微信小程序获取音频时长与实时获取播放进度 在小程序官方文档中 audio 注意:1.6.0 版本开始,该组件不再维护.建议使用能力更强的 wx.createInnerAudioContext 接口 ...

  4. STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码

    STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 因为芯片的spi口只有3个,有部分需要外接W25Q128 ...

  5. STM32+MAX6675利用SPI获取实时温度数据程序及代码

    之前写的STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 模拟spi之前写过 里面的部分代码摘取的正点原子 ...

  6. python获取子进程返回值_Python 从subprocess运行的子进程中实时获取输出的例子 Python如何抓取程序的输出?...

    关于python中用subprocess调用exe子进程的问题不懂我的人有什么资格对我指指点点,不了解我的人凭什么对我说三道四的. python杀死子进程后继续执行后面程序 程序a(python写成) ...

  7. 实时获取股票数据的android app应用程序源码分享

    From:http://www.jb51.net/article/72449.htm 本文我们分享一个实时获取股票数据的android app应用程序源码分享,可以作为学习使用,本文贴出部分重要代码, ...

  8. 一个实时获取股票数据的安卓应用程序

    关键字:Stock,股票,安卓,Android Studio. OS:Windows 10. 最近学习Android应用开发,不知道写一个什么样的程序来练练手,正好最近股票很火,就一个App来实时获取 ...

  9. 微信小程序实现时钟(实时获取当前时间)

    最终效果展示图 这里的CSS样式是借鉴其他博客的,具体是哪一篇我忘了emmm 实现实时获取当前时间,并用上图所示的时钟展示出来,有两种思路. js获取当前时间,计算出时针.分针.秒针需要旋转的角度,再 ...

最新文章

  1. mysql字段中去掉括号
  2. 如何实现RESTful Web API的身份验证
  3. java 方法 示例_Java 9示例–收集的工厂方法–创建不可修改的列表,集合和映射...
  4. POJ1177 Picture 线段树+离散化+扫描线
  5. 第零课、开启ce自身保护、设置od,让调试不非法
  6. C++ 中结构体的继承关系
  7. cs客户端接收网页传来的数据_3.爬取数据-urllib库
  8. 小生我怕怕私房版OllyDBG全自动下断版
  9. vue 源码学习总纲
  10. 【无标题】A\Btest
  11. java 检测点击事件控件_iCheck控件ifClicked和ifChanged事件的讨论
  12. php常用抽奖概率算法(抽奖,大转盘,广告首选)
  13. 数据约束 for:麻包缝裤衩
  14. Python表白妙招,把情书写进她的照片里
  15. MySql数据查重、去重的实现
  16. “数据+算法”双轮驱动,自助分析平台助银行实现“智慧转型”
  17. 最少硬币找零问题(js实现)
  18. TortoiseGit工具 修改登录用户名密码
  19. 国密SSL证书申请免费试用
  20. MAC新手教程——Apple ID怎么授权电脑

热门文章

  1. docker镜像打包上传
  2. 预约转账、基金购买、定投;收款人管理
  3. PHPstorm等系列IDE永久破解
  4. HTML中的点缀--伪类
  5. GRE:区块链将引领传统保险走向风险智能合约的时代变革
  6. linux oracle home 环境变量,在Linux下查看环境变量
  7. (二)js在html中调用的三种方式
  8. 比例—微分控制调节二阶系统
  9. 商业模式:为什么饭统学不了OpenTable
  10. 华为员工论坛集体吐槽新办公环境:周围像荒野,交通乱糟糟!