在文本浏览器中实时显示 QProcess 输出

2023-12-02

我是 qt 开发的新手,我想将 QProcess 的输出实时传输到文本浏览器。我首先执行一个简单的 echo 命令,但程序的输出没有显示。 我究竟做错了什么????

QProcess p;
p.start("echo hye");
QByteArray byteArray = p.readAllStandardOutput();
    QStringList strLines = QString(byteArray).split("\n");
    QString line= p.readAllStandardOutput();
    if(p.state()==QProcess::NotRunning)
        ui->textBrowser->append("not running");
    foreach (QString line, strLines){
    ui->textBrowser->append(line);}

附:我在一台linux机器上。

编辑: 我仍然无法在 textBrowser 中获得输出。

我更改了 Qprocess 参数并尝试了 waitForStarted() 和 waitForReadyRead() ,以便进程及时启动并且结果可用。

我添加了 waitForFinished() ,以便进程在超出范围时不会终止。

QProcess p;
    p.start("echo", QStringList() << "hye");
    p.waitForStarted();
    QByteArray byteArray = p.readAllStandardOutput();
    QStringList strLines = QString(byteArray).split("\n");
    QString line= p.readAllStandardOutput();
    if(p.state()==QProcess::NotRunning)
        ui->textBrowser->append("not running");
    ui->textBrowser->append(line);
    p.waitForFinished();

要读取标准输出,您需要调用waitForReadyRead()在读取标准输出之前,或者您需要连接Qprocess信号readyReadStandardOutput()到您的插槽并从插槽读取标准输出。

还要确保您的 QProcess 不在堆栈上。

我尝试下面的代码工作正常。

EDIT:

MyProcess::MyProcess(QObject *parent) :
    QObject(parent)
{
    QString program = "echo";
    QStringList arguments;
    arguments << "Hello";
    mProcess.start(program,arguments);
    connect(&mProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(readyReadStandardOutput()));
    connect(&mProcess,SIGNAL(readyReadStandardError()),this,SLOT(readyReadStandardError()));
}

void MyProcess::readyReadStandardOutput(){
    qDebug()<< mProcess.readAllStandardOutput();
}

void MyProcess::readyReadStandardError(){
    qDebug() << mProcess.readAllStandardError();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在文本浏览器中实时显示 QProcess 输出 的相关文章

随机推荐

  • 单词中不同的字母颜色[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 有没有什么解决方案可以结合html css和js来一一改变单词的字母颜色 某种简单的方法 我是js新手 是的 有 而且也很受欢迎 http lettingjs com 怎么运行的
  • 即使设置了哈希密码格式,ASP.Net 会员也会将更改后的密码保存为纯文本

    我正在使用 ASP Net SqlMembershipProvider 来管理我的用户 这是我的配置
  • python多线程比串行慢?

    我正在尝试找出Python 中的多线程编程 这是我想要比较串行和并行速度的简单任务 import threading import Queue import time import math def sinFunc offset n res
  • Excel Interop - 如何更改命名范围

    我有一个 Excel 模板文件 我从 SQL Server OLEDB 连接器将数据填充到其中 该文件包含一些引用数据库填充的数据集的数据透视表 目前我所做的是使用 Data A K 范围选择工作表中的所有行 这会带来数据透视表中显示空白值
  • 使用 jQuery 使用数据属性对元素进行排序

    只是想让你知道 我是一个菜鸟 我尝试为我的网站上的菜单导航编写特定功能 http thomasmedicus at 我希望我网站上的访问者能够按 日期 或 相关性 对我的项目进行排序 我创建了这张图片 以便您可以更好地了解我 preview
  • 在 Excel 2013 中使用宏设置打印区域

    在 Excel 2013 中 工作表名为 Tags 我在尝试着设置打印区域 from A2直到页尾 以列结束L Worksheets Tags PageSetup PrintArea Worksheets Tags Range Cells
  • 为什么我的模型预测相同的标签?

    我正在训练一个小型网络 训练似乎进展顺利 val 损失减少 验证准确度达到 80 左右 一旦没有更多改进 它实际上会停止训练 耐心 10 它训练了 40 个 epoch 然而 它只为每个测试图像预测一个类别 我尝试随机初始化转换层 我添加了
  • C# 正则表达式用于匹配嵌套括号内的特定文本

    我有这些代码行用于括号之间的运算符 string filtered Regex Replace input string Empty var result filtered Split new StringSplitOptions Remo
  • 逗号分隔值到单引号和逗号分隔值

    我的数据为 abc defg hijklm op qrs tuv 我希望将这些数据转换为 abc defg hijklm op qrs tuv 我想在linux下做 我使用 sed 我一直在互联网上查找 但没有找到解决方案 请帮我 在开头添
  • 核心数据不保存我的数据

    我使用核心数据来保存一些整数 速率 然后在上下文中调用 save HeartRateBeat beat HeartRateBeat heartRateWithHeartRate rate ofRecordTitle self recordT
  • 使用 Django 实现单点登录 (SSO) [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想使用 Django 为我们当前使用的多个应用程序实现单点登录 SSO 我如何使用 Django 来实现这个 我们正在使用 OpenAM http
  • 将 QWidget 渲染为 QImage 丢失 alpha 通道

    我有一个简单的 Qt 小部件 它是QLabel应用了简单的 CSS 样式 样式的重要部分是圆形边框 QString css border style solid border width 3px border radius 7px 它在屏幕
  • 反应js;映射数组后没有任何渲染

    我有一个输入 在用户插入文本后我想在按钮中显示每个单词button group 我拆分了句子并映射了返回的内容
  • 我应该使用哪种 java swing 布局

    我需要创建这个框架 我应该使用哪种布局 我正在考虑框或网格布局 但右侧的菜单将是一个问题 您的代码中有很多重复 我会分解每个部分 使其成为一个单独的组件 并专注于其单独的布局需求 主屏幕有 4 个主要区域 不包括菜单 我会用类似的东西Gri
  • 如何防止Mysql Connector/J转换DATE和TIME时区?

    我正在使用以下 DSN 连接到 mysql 服务器 jdbc mysql localhost my database useUnicode true characterEncoding utf 8 serverTimezone UTC 我遇
  • 反射类型没有方法

    我正在尝试在 Go 中使用反射 为什么这段代码没有列出方法 它列出了字段 这是问题所在吗 value interface 我不确定如何将通用结构 类 类型传递给函数 通常我只会传递一个对象 我对此完全陌生 我是一名 C 程序员 packag
  • 如何用 Objective-C 编写计时器?

    我正在尝试用 NSTimer 制作秒表 我给出了以下代码 nst Timer NSTimer scheduledTimerWithTimeInterval 0 001 target self selector selector showTi
  • 当我在tensorflow.keras中使用BinaryCrossentropy(from_logits=True)时,我应该使用什么作为目标向量

    我有一个多标签分类 其中每个目标都是由 1 和 0 组成的向量not相互排斥 为了清楚起见 我的目标是 0 1 0 0 1 1 到目前为止我的理解是 我应该使用二元交叉熵函数 正如本节中所解释的answer 另外 我明白了tf keras
  • 如何使用 Windows 计划任务运行 PHP 脚本?

    我已经在我的机器中安装了 localhost server 我需要使用 Windows 计划任务运行 php 脚本 如何在计划任务的 操作 选项卡中添加路径 配置脚本以在特定时间段运行 在系统上找到 php exe 可执行文件 并使用以下命
  • 在文本浏览器中实时显示 QProcess 输出

    我是 qt 开发的新手 我想将 QProcess 的输出实时传输到文本浏览器 我首先执行一个简单的 echo 命令 但程序的输出没有显示 我究竟做错了什么 QProcess p p start echo hye QByteArray byt