Qt 进程间通信

Qt提供了几种在 Qt 应用程序中实现 IPC (进程间通信) 的办法。

TCP/IP

跨平台 Qt Network 模块提供使网络编程可移植且容易的类。它提供高级类 (如 QNetworkAccessManager ) 使用特定应用程序级协议进行通信,和低级类 (如 QTcpSocket , QTcpServer , QSslSocket ) 为实现协议。

Local Server/Socket

跨平台 Qt Network 模块提供使本地网络编程可移植且容易的类。它提供 QLocalServer and QLocalSocket 类 (允许在本地设置中进行像网络的通信)。它们的 TCP 搭档可以被用作即插即用置换,以使通信能跨网络工作。

共享内存

跨平台共享内存类 QSharedMemory ,提供对操作系统的共享内存实现的访问。它允许通过多线程 多进程,安全地访问共享内存段。此外, QSystemSemaphore 可以用于控制系统共享资源的访问,及在进程之间通信。

D-Bus 协议

Qt D-Bus 模块是仅 Unix 库,可使用 D-Bus 协议实现 IPC (进程间通信)。它扩展 Qt 的 信号和槽 机制到 IPC (进程间通信) 级别,允许将通过一个进程发射的信号连接到另一进程的槽。 Qt D-Bus 文档编制拥有详细信息有关如何使用 Qt D-Bus 模块。

QProcess 类

跨平台类 QProcess 可以被用于启动外部程序作为子级进程,并与它们进行通信。它提供了用于监视和控制子级进程状态的 API。 QProcess 给予对子级进程的输入/输出通道的访问,通过继承 QIODevice .

会话管理

在 Linux/11、Windows 和 macOS,Qt 提供会话管理支持。会话允许将事件传播给进程 (例如:通知何时发生关闭)。然后,进程和应用程序可以履行任何必要操作 (譬如:保存打开文档)。