如何连接QDBusConnection信号

如何连接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>>(); 

后问题所以这是一个简单的错误毕竟。