Qt D-Bus

D-Bus 是一种用于进程间通信(IPC)和远程过程调用(RPC)的机制,最初是为 Linux 开发的,用以取代现有的、竞争的 IPC 解决方案,并采用统一的协议。它还旨在允许系统级别进程(如打印机和硬件驱动程序服务)与常规用户进程之间的通信。

它使用一种快速、二进制消息传递协议,由于低延迟和低开销,因此适合于同一台机器的通信。其规范目前由 freedesktop.org 项目定义,对所有相关方开放。

通信,通常通过一个称为“总线”的中心服务器应用程序进行,但直接的应用间通信也是可能的。在总线上通信时,应用程序可以查询可用的其他应用程序和服务,并可以按需激活其中之一。

使用模块

使用 Qt 模块的 C++ API 需要将模块库链接到项目中,可以直接链接或通过其他依赖项进行链接。几个构建工具都为此提供了专用支持,包括 CMakeqmake

使用 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 模块可在 Qt 公司 的商业许可下获得。此外,它还可在免费软件许可证下获得:GNU 较小通用公共许可证,版本 3,或GNU 通用公共许可证,版本 2。有关更多详细信息,请参阅 Qt 许可

此外,Qt 6.7.2 中的 Qt D-Bus 可能包含以下许可以下许可的第三方模块

libdus-1 头文件,版本 dbus-1.13.12

Academic Free License v2.1,或 GNU 通用公共许可证 v2.0 或更高版本

© 2024 Qt公司 Ltd. 本文档中包含的文档贡献归其各自所有者所有。本提供的文档根据自由软件基金会发布的GNU自由文档许可协议第1.3版进行许可。