如何将exe文件的输出重定向到Qt中的QStringList?

时间:2012-08-10 06:25:30

标签: qt qt4

正如主题所说,任何人都可以告诉我如何将已执行的exe的输出重定向到QStringist变量,以便我可以实时显示执行的exe在QTextBrowser中执行的操作?例如,如果我用这样的简单echo命令执行exe,并说exe名称是hello.exe,其源代码如下

echo "Hello World!"

我在Qt中执行它就像这样

QProcess abc

abc.start("files\\hello.exe);

现在这将回应我在源代码中提供的问题,即“Hello World”,但由于我正在创建一个GUI应用程序,我看不到它,所以我们如何将该输出转换为QStringList变量并将其显示在QTextBrowser中即时的?我们是否允许使用被叫exe的多行输出?如果exe的输出非常长并且是多线的,并且如果它完全不适合QTextBrowser那么滚动条是否会自动显示?

谢谢。

1 个答案:

答案 0 :(得分:2)

根据QT文档(请阅读):

将处理程序绑定到QProcess::readyReadStandardOutput (),每次进程在STDOUT上有新数据时都会发出这个句柄。然后使用QProcess::readAllStandardOutput ()获取数据。然后将字节数组转换为QString,将其与前一次拆分的剩余部分粘贴,并用分隔符拆分并填充QStringList。然后将其输出到QTextBrowser