Qt D-Bus
D-Bus 是一种进程间通信(IPC)和远程过程调用(RPC)机制,最初是为 Linux 开发的,目的是用一种统一的协议取代现有的和相互竞争的 IPC 解决方案。它还用于在系统级进程(如打印机和硬件驱动程序服务)与普通用户进程之间进行通信。
它使用一种快速的二进制消息传递协议,由于延迟低、开销小,因此适用于同机通信。其规范目前由freedesktop.org
项目定义,可供各方使用。
一般来说,通信是通过一个称为 "总线"(因此而得名)的中央服务器应用程序进行的,但也可以实现应用程序之间的直接通信。在总线上进行通信时,应用程序可以查询哪些其他应用程序和服务可用,也可以按需激活某个应用程序和服务。
使用模块
使用 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 系列 Qt 在模块 API 和功能方面的重要变更。
许可证和归属
Qt D-Bus 模块可在Qt Company 的商业许可下使用。此外,它还受自由软件许可证的保护:GNU 宽通用公共许可证第 3 版或GNU 通用公共许可证第 2 版。详情请参见Qt Licensing。
此外,Qt 6.9.0 中的Qt D-Bus 可能包含以下许可协议下的第三方模块:
学术自由许可证 v2.1,或 GNU 通用公共许可证 v2.0 或更高版本 |
© 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.