# QtDBusExtras **Repository Path**: mbsr/qtdbusextras ## Basic Information - **Project Name**: QtDBusExtras - **Description**: 对Qt DBus模块的功能扩展 1、实现了org.freedesktop.DBus.ObjectManager接口,能够动态调整接口 2、顺便实现了QObject对象信号的捕获功能 3、顺便实现了通过对象查询其路径及接口的功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-15 - **Last Updated**: 2025-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Qt DBus扩展模块 QtDBusExtras 为实现接口的动态调整,在Qt DBus模块基础上,实现DBus之`org.freedesktop.DBus.ObjectManager`接口功能,设计并开发本功能模块。 ## 编译安装 ```shell git clone https://gitee.com/mbsr/qtdbusextras.git cd qtdbusextras mkdir build cmake -S . -B build --install-prefix=/path/to/install -DCMAKE_BUILD_TYPE=Release cmake --build build --parallel --target all install ``` ## 对象管理 ObjectManager --- 本接口具有被管理对象列表查询、接口增加及移除通知等功能。当前仅实现对QtDBusObjectManager对象所注册路径的管理,对子路径管理支持尚未考虑,因此如下方法的对象路径,已默认为QtDBusObjectManager对象路径。 ### 查询被管理对象列表 GetManagedObjects 本方法返回一个嵌套键值对,顶层为对象路径,次一层为接口名称,再次一层为属性及其对应的属性值。 ### 接口增加 InterfacesAdded 当对象被添加或获得一个或多个接口时,发出InterfacesAdded信号。第一个参数为对象路径,第二个参数为包含一个包含已添加到给定对象路径的接口和属性的键值对。 ### 接口移除 InterfacesRemoved 当对象被删除或失去一个或多个接口时,发出InterfacesRemoved信号。第一个参数为对象路径,第二个参数包含一个已删除接口的数组。 ### 添加接口 addInterface 本方法将一个QObject对象到注册到指定接口,除QObject本身信号、槽、属性外,其余的信号、槽、属性都将被导出。 ### 移除接口 removeInterface 本方法将通过QObject对象,或接口名称移除一个接口。 ### 对象查询 ObjectAt 本方法查询QObject对象所注册的接口。 ### 接口查询 interfaceOf 本方法查询所注册接口的QObject对象。 ## 信号捕获 SignalCatcher --- 为实现对象管理,实现本功能模块,用于捕获QObject所有的信号。 ### 捕获对象 catchObject 捕获指定对象的信号,支持按信号所在类进行捕获,默认捕获所有。 ### 释放对象 releaseObject 释放指定对象的信号,支持按信号所在类进行释放,默认释放所有。 ### 捕获 catched 当捕获到信号时发出本信号。 ## 属性 Properties --- 为实现对象管理,实现本功能模块,用于实现`org.freedesktop.DBus.Properties`部分功能。 ### 获取 Get 获取指定接口对象的属性值。第一个参数为接口名称,第二个参数为属性名称,返回值为属性值。 ### 设置 Set 设置指定接口对象的属性值。第一个参数为接口名称,第二个参数为属性名称,第三个参数为属性值。 ### 获取所有 GetAll 获取指定接口对象的所有属性值。参数为接口名称。返回包含属性名及属性值的键值对。 ### 属性变化 PropertiesChanged 当有接口的属性新增、移除、变更时发出此信号。第一个参数为接口名称,第二个参数为新增、变化的属性名及属性值的键值对,第三个参数为移除的属性名列表。 ## 位置 Location --- 为实现对多个对象路径进行管理,实现本功能模块。 ### 位置查询 locationOf 查询指定QObject对象,在DBus总线上的位置信息。第一个参数为QObject对象,第二个参数为DBus连接,返回值包含对象所在节点(即对象路径)及接口名称等信息。