Qt D-Bus
D-Bus 是一种进程间通信(IPC)和远程过程调用(RPC)机制,最初为 Linux 开发,旨在通过一种统一的协议取代现有及竞争性的 IPC 解决方案。它还旨在实现系统级进程(如打印机和硬件驱动程序服务)与普通用户进程之间的通信。
它采用一种快速的二进制消息传递协议,由于其低延迟和低开销,非常适合同一台机器上的通信。其规范目前由freedesktop.org 项目定义,并向所有参与方开放。
通常情况下,通信是通过一个被称为“总线”(bus,因此得名)的中央服务器应用程序进行的,但应用程序之间也可以直接通信。在总线上通信时,应用程序可以查询哪些其他应用程序和服务可用,并根据需要激活其中一个。
使用模块
要使用 Qt 模块的 C++ API,需要将模块库链接到项目中,既可以直接链接,也可以通过其他依赖项间接链接。包括CMake和qmake 在内的多种构建工具都为此提供了专门的支持。
使用find_package() 命令在Qt6 包中定位所需的模块组件:
find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)更多详细信息,请参阅《使用 CMake 构建》概述。
文章与指南
以下文档包含有关 Qt D-Bus 集成功能的信息,并详细介绍了通过总线发送和接收类型信息所使用的机制:
示例
参考
模块演变
Qt D-Bus列出了为 Qt 6 系列所做的模块 API 和功能方面的重大变更。
许可与署名
Qt D-Bus 模块由The Qt Company 提供,可依据商业许可使用。此外,该模块还提供自由软件许可:GNU 较少通用公共许可证第 3 版(LGPLv3)或GNU 通用公共许可证第 2 版(GPLv2)。更多详情请参阅Qt 许可条款。
此外,Qt 6.12.0 中的Qt D-Bus 可能包含遵循以下宽松许可协议的第三方模块:
学术自由许可证 v2.1,或 GNU 通用公共许可证 v2.0 或更高版本 |
© 2026 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.