如何连接QDBusConnection信号
问题描述:
我已将我的QDBusConnection
连接到一个插槽,我确定它已连接,因为连接功能返回True,并且我可以看到“连接到插槽”登录控制台。如何连接QDBusConnection信号
if (m_bus.connect("com.mypage.MyService"
, "/MyRadio"
, "org.freedesktop.DBus.Properties"
, "PropertiesChanged"
, this
, SLOT(updateProperties(QString, QMap<QString, QVariant>))
)) {
qWarning() << "connected to slot";
}
但我无法从相应的dbus服务得到任何更新。我正在用dbus-monitor观看该服务,并且确定信号正在发射。
信号具有以下类型:
<signal name="PropertiesChanged">
<arg type="s" name="interface_name"/>
<arg type="a{sv}" name="changed_properties"/>
<arg type="as" name="invalidated_properties"/>
</signal>
如果我添加第三个参数到插槽等QList<QString>
话,就不能正确地连接(“连接在时隙”句子无法看到)。
任何线索为什么这不能正常工作?
答
问题已经加入
qDBusRegisterMetaType<QMap<QString, QVariant>>();
后问题所以这是一个简单的错误毕竟。