Qt 进程间通信

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

TCP/IP

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

共享内存

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

D-Bus 协议

Qt D-Bus module is a Unix-only library you can use to implement IPC using the D-Bus protocol. It extends Qt's 信号和槽 mechanism to the IPC level, allowing a signal emitted by one process to be connected to a slot in another process. The Qt D-Bus documentation has detailed information on how to use the 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.