Qt 进程间通信

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

TCP/IP

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

共享内存

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

D-Bus 协议

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

QProcess 类

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

会话管理

In Linux/X11 platforms, Qt provides support for session management. Sessions allow events to be propagated to processes, for example, to notify when a shutdown occurs. The process and applications can then perform any necessary operations such as save open documents.