使用外部可执行文件作为管道的 Qt 'way' 是什么?

What is the Qt 'way' for using an external executable as a pipe?

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

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

第二个应用程序不能know/depend主应用程序的任何东西,所以开发像抽象的服务器是不可能的。

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

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

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

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

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