Inter-Process Communication in Qt

Qt 提供了多种在 Qt 应用程序中实现进程间通信 (IPC) 的方法.

TCP/IP

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

Shared Memory

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

D-Bus protocol

Qt D-Bus 模块是一个仅限 Unix 的库,可用于使用 D-Bus 协议实现 IPC。 它将 Qt 的信号和槽机制扩展到 IPC 级别,允许一个进程发出的信号连接到另一进程中的槽。 Qt D-Bus 文档包含有关如何使用 Qt D-Bus 模块的详细信息。

Qt D-Bus 模块是一个仅限 Unix 的库, 使用 D-Bus 协议实现 IPC. 它将 Qt 的 信号和槽 机制扩展到 IPC 级别, 允许一个进程发出的信号连接到另一进程中的槽. Qt D-Bus 文档包含有关如何使用 Qt D-Bus 模块的详细信息.

QProcess Class

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

Session Management

在 Linux/X11, Windows 和 macOS 上, Qt 提供对会话管理的支持. 会话允许将事件传播到进程, 例如, 在发生关闭时发出通知. 然后, 进程和应用程序可以执行任何必要的操作, 例如保存打开的文档.