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

标签 c++ qt process pipe qt5

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

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

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

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

最佳答案

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

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

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

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

关于c++ - 使用外部可执行文件作为管道的 Qt 'way' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29185055/

相关文章:

linux - 如何提供Qt安装路径进行配置?

qt - 如何从 QProcess 获取 STDOUT?

c# - 启动新进程并杀死当前进程

c++ - EXIT_SUCCESS 和 EXIT_FAILURE。是一次编译到处运行还是一次编写到处编译?

c++ - 从文件读取/写入自定义对象的 vector

c++ - lambda 应该衰减到模板代码中的函数指针吗?

c++ - 如何防止一个程序/进程的分页?

c++ - 在 C++ 中使用 QThread 多线程编程

unity3d - 我可以在 Unity 中使用 powershell 命令吗?

c# - 允许 IIS 运行 cmd 命令