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 提供对会话管理的支持. 会话允许将事件传播到进程, 例如, 在发生关闭时发出通知. 然后, 进程和应用程序可以执行任何必要的操作, 例如保存打开的文档.