使用Python 3 DBUS模块,信号处理程序为PropertiesChanged信号采用的默认参数如下:
def handler(interface, changed_properties, invalidated_properties):
something...
听众设置如下:
dbus.Interface.connect_to_signal("PropertiesChanged", handler)
如何在末尾添加额外的参数,以便我可以拥有一个具有如下结构的信号处理程序:
def handler(interface, changed_properties, invalidated_properties, extra_argument):
something...
答案 0 :(得分:0)
PropertiesChanged是org.freedesktop.DBus.Properties接口的一部分,您不应修改其签名。其他程序假设它完全按照DBus规范中的规定实现。多个DBus绑定使用它来在代理对象发生更改时自动更新它们的属性。
您可以使用自己的自定义参数创建自己的信号:
使用python-dbus(已弃用):
class Example(object):
@dbus.service.signal(dbus_interface='com.example.Sample',
signature='us')
def NumberOfBottlesChanged(self, number, contents):
pass
使用pydbus:
from pydbus.generic import signal
class Example(object):
"""
<node>
<interface name='com.example.Sample'>
<signal name='NumberOfBottlesChanged'>
<arg type='u' name='number'/>
<arg type='s' name='contents'/>
</signal>
</interface>
</node>
"""
NumberOfBottlesChanged = signal()