【发布时间】:2016-09-15 14:54:07
【问题描述】:
我已将我的QDBusConnection 连接到一个插槽,并且我确定它已连接,因为连接函数返回 True,并且我可以在控制台上看到“connected to slot”登录。
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>
如果我向 Slot 添加第三个参数,例如 QList<QString>,则它无法正确连接(看不到“已连接插槽”语句)。
关于为什么这不能正常工作的任何线索?
【问题讨论】:
标签: qt signals-slots dbus