Qt 中的进程间通信

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

TCP/IP

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

本地服务器/套接字

跨平台 Qt Network模块提供的类使本地网络编程变得简单易行。它提供的QLocalServerQLocalSocket 类允许在本地设置中进行类似网络的通信。它们的 TCP 对应类可用于直接替换,以实现跨网络通信。

共享内存

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

D 总线协议

Qt D-Bus模块是一个仅适用于 Unix 的库,可用于使用 D-Bus 协议实现 IPC。它将 Qt 的信号和插槽机制扩展到 IPC 层面,允许将一个进程发出的信号连接到另一个进程的插槽上。文档 Qt D-Bus文档详细介绍了如何使用该 Qt D-Bus模块的详细信息。

QProcess 类

跨平台类QProcess 可用于将外部程序作为子进程启动,并与之通信。QProcess 继承自QIODevice ,可访问子进程的输入/输出通道。

会话管理

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

另请参阅 Qt Core 中的 IPC 主题

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.