gpt4 book ai didi

Python DBUS - 带有额外参数的接口(interface)上的 `PropertiesChanged` 监听器

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:30 26 4
gpt4 key购买 nike

对于 Python 3 DBUS 模块,信号处理程序为 PropertiesChanged 信号采用的默认参数如下:


def 处理程序(接口(interface),changed_properties,invalidated_properties):
某物...

监听器设置如下:


dbus.Interface.connect_to_signal(“PropertiesChanged”,处理程序)

我怎样才能在最后添加一个额外的参数,这样我就可以拥有一个结构如下的信号处理程序:


def handler(接口(interface),changed_properties,invalidated_properties,extra_argument):
某物...

最佳答案

PropertiesChanged 是 org.freedesktop.DBus.Properties 接口(interface)的一部分,您不应该修改它的签名。其他程序假定它完全按照 DBus 规范中的规定实现。多个 DBus 绑定(bind)使用它在代理对象发生更改时自动更新它们的属性。

您可以使用自己的自定义参数创建自己的信号:

使用 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()

关于Python DBUS - 带有额外参数的接口(interface)上的 `PropertiesChanged` 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37033673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com