使用 Qt5 从 QDBusConnection 获取服务名称

Posted

技术标签:

【中文标题】使用 Qt5 从 QDBusConnection 获取服务名称【英文标题】:Get service name from QDBusConnection with Qt5 【发布时间】:2016-08-24 09:14:37 【问题描述】:

我们的框架最近从 Qt4 更新到 Qt5。 但是这里我们在 d-bus 事件处理上遇到了一些问题。

原代码QDBusConnection::sender().name()返回空字符串。而官方建议的替代方式QDBusContext::connection()返回类似“1.40”、“1.101”的东西(应该是地址什么的,是正确的)。

我们也尝试使用msg.service(),其中 msg 是QDBusMessage,但仍然得到以前的地址。

我们需要得到它的名字,比如com.***.HelpMe,我们将它发送到QDBusConnection::connect(),以确保即使重新启动d-bus服务可能会改变地址,我们也可以区分不同的服务。

感谢您的任何建议。

【问题讨论】:

【参考方案1】:

嗯.......其实官方建议的替代方式QDBusContext::connection()可以工作。 我们不知道为什么之前的尝试得到了不同的结果。

【讨论】:

以上是关于使用 Qt5 从 QDBusConnection 获取服务名称的主要内容,如果未能解决你的问题,请参考以下文章

使用系统 DBus 的 registerService 失败(但适用于会话 DBus)

如何从 Qt5 读取串行数据

使用 qml 从 qt5 发布 HTTP 请求

如何在 Qt5 中使用 OpenCV

Qt5 从局域网获取 mjpeg 流

如何从源代码构建一系列 Qt5 子模块?