Qt D-Bus

D-Bus 是最初是为 Linux 开发的 IPC (进程间通信) 和 RPC (远程过程调用) 机制,采用 1 个统一协议替换替换现有的竞争 IPC 解决方案。它还被设计成允许在系统级进程 (譬如:打印机和硬件驱动程序服务) 和正常用户进程之间,进行通信。

它使用很快的二进制消息传递协议,适于同机通信 (由于它的低延迟和低开销)。目前,其规范的定义是通过 freedesktop.org 工程,且所有各方可用。

一般而言,通信是透过称为 Bus (总线,因此得名) 的中心服务器应用程序发生的,但应用程序直接到应用程序的通信也是可能的。当在 Bus (总线) 中进行通信时,应用程序可以查询哪些其它应用程序和服务可用,及按需激活它们之一。

使用模块

使用 Qt 模块的 C++ API 要求直接 (或透过其它依赖) 链接到模块库。几个构建工具对此有专用支持,包括 CMake and qmake .

使用 find_package() 命令定位所需模块组件在 Qt6 包:

find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
					

更多细节,见 构建采用 CMake 概述。

文章和指南

下列文档包含 Qt D-Bus 集成特征的有关信息,并提供用于通过 Bus (总线) 发送和接收类型信息机制的有关细节:

范例

参考

模块演变

Qt D-Bus 的变化 列出了 Qt 的 Qt 6 系列在模块 API 和功能上所做出的重要改变。

许可和归属

Qt D-Bus 模块在商业许可下是可用的来自 Qt 公司 。此外,它在自由软件许可下也是可用的: GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。

Furthermore, Qt D-Bus in Qt 6.10.1 may contain third party modules under the following permissive licenses:

libdus-1 头,dbus 第 1.13.12 版

学术免费许可第 2.1 版,或 GNU GPL (一般公共许可) 第 2.0 版或更高版本