如果数组中的值发生变化,我正在尝试设置静态通知,但到目前为止我还没有成功... 我发现了一个关于列表更改通知的早期问题,该列表使用的_items_changed措辞看起来可能有用,但唉,它没有:(
任何人都有建议如何在数组元素发生变化时设置静态通知处理程序?
BTW,我正在使用Enthought Canopy V1.4.1.1975
答案 0 :(得分:0)
您是否了解了大多数事件驱动的应用程序的工作原理?您可以为自己创建custom list class,然后覆盖__setitem__
方法以通知所有侦听器列表已被修改。
class eventList(list):
def __init__(self, ...):
self.listeners = []
...
def __setitem__(self, i, val):
ret = super.__setitem__(self, i, val)
for l in listeners:
if isinstance(l, eventListListener):
l.actionPerformed(self)
return ret
将通知此事件的对象必须从eventListListener
类继承,并实现了一个名为actionPerformed
的方法。
...
表示不完整
请注意,这应该在多线程环境中完成,以便产生任何实际好处