在 Qt 4.7 中将标准输出管道传输到 QLabel

Posted

技术标签:

【中文标题】在 Qt 4.7 中将标准输出管道传输到 QLabel【英文标题】:piping standard output into QLabel in Qt 4.7 【发布时间】:2011-01-17 07:16:22 【问题描述】:

我正在尝试将大学 C++ 代码包装在 Qt 小部件中。

但是,他的程序标准输出必然需要查看。到目前为止,我假设我将构建一个 GUI 并打开一个 QProccess 来运行他的程序(然后通过该管道发送命令)。

所以我的问题是无论如何要读取该程序的标准输出并将其显示在 qlabel 或类似的东西中(即我应该研究哪些函数)?

【问题讨论】:

【参考方案1】:

当进程运行时,只要标准输出上有可用数据,QProcess 对象就会发出readyReadStandardOutput() 信号。您可以订阅信号,从连接的插槽调用 readAllStandardOutput() 并将数据附加(而不是替换)到您的小部件。如果您不需要在数据到达后立即显示,您可以等到该过程完成,然后一次性读取所有输出。

【讨论】:

完美的声音正是我所需要的!

以上是关于在 Qt 4.7 中将标准输出管道传输到 QLabel的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 将标准输入/标准输出通过管道传输到 Perl 脚本

在 Windows 中将进程的输出异步传输到文件

Qt 4.7:TCP线程,数据传输导致内存泄漏

如何在objective-c中将数据从NSOutputStream传输到NSInputStream

在管道中强制标准输出的行缓冲

管道流程输出到新流程