Qt 应用程序之间通过 QProcess 进行通信

Posted

技术标签:

【中文标题】Qt 应用程序之间通过 QProcess 进行通信【英文标题】:Communication between Qt applications via QProcess 【发布时间】:2019-10-07 15:01:02 【问题描述】:

我正在尝试在 2 个 Qt 应用程序之间实现双向通信, 看到这可能通过一个主应用程序通过一个包装的 QProcess 启动第二个应用程序并以两种方式连接信号来实现......

我不明白如何从 QProcess 启动的应用程序中获取访问权限(反之亦然 - 如何向启动的应用程序发送信号)?

谢谢。

【问题讨论】:

你没有得到哪一部分?使用QProcess 启动第二个进程,然后使用read*write* 函数从/向其中读取/写入数据。不过,您不能使用QProcess 发送自己的信号。为此,您必须使用 Qt D-Bus 类。 Qt 提供了通过stdoutstderrstdinQProcess 之间进行通信的轻松访问,但您可以使用套接字、IPC 等实现自己的机制。例如跨度> 【参考方案1】:

K 所以我使用 QLocalServer/Socket 来实现我的 2 个 Qt 应用程序之间的通信。 我在 Linux 上,所以这种基于 IPC 的通信正是我所需要的。

如果有需要的人知道,可以为服务器/客户端共享一些简单的代码sn-ps(双向读取/发送)。

【讨论】:

以上是关于Qt 应用程序之间通过 QProcess 进行通信的主要内容,如果未能解决你的问题,请参考以下文章

与 QProcess Python 程序通信

QT软件开发: QProcess启动进程完成交互并获取输出

Qt技巧:QProcess与外部程序的调用

Qt使用QProcess进程间双向通信(linux和win系统)

QProcess与外部程序的调用(可以通过设置管道来交互)

qt怎么查看当前正在执行的代码