将外部可执行文件用作管道的Qt'方式是什么?

时间:2015-03-21 16:25:42

标签: c++ qt process pipe qt5

我有一个使用Qt框架的GUI应用程序和另一个只处理来自stdin的文本并在stdout中显示其输出的文档。

如何从Qt应用程序中可移植地使用第二个可执行文件? 主应用程序的用户将创建需要处理的数据。 (结果将显示给用户)

第二个应用程序无法知道/依赖于主应用程序的任何内容,因此开发像抽象这样的服务器是不可能的。

我不想为此编写特定于Linux的代码,因为将来应用程序需要在其他平台上运行。

1 个答案:

答案 0 :(得分:2)

您可以使用QProcess启动第二个应用程序,提供输入并读取其输出:

QProcess process;
process.start("secondApp");
process.waitForStarted();

process.write(input, count);
process.closeWriteChannel();

process.waitForFinished();
QByteArray output;
output = process.readAllStandardOutput();