正如主题所说,任何人都可以告诉我如何将已执行的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那么滚动条是否会自动显示?
谢谢。
答案 0 :(得分:2)
根据QT文档(请阅读):
将处理程序绑定到QProcess::readyReadStandardOutput ()
,每次进程在STDOUT上有新数据时都会发出这个句柄。然后使用QProcess::readAllStandardOutput ()
获取数据。然后将字节数组转换为QString
,将其与前一次拆分的剩余部分粘贴,并用分隔符拆分并填充QStringList
。然后将其输出到QTextBrowser
。