使用以下代码:
b = B(lst = [A()])
'变更'更改项目时打印,如:
b.lst[0].value=1
如何更改列表项的内部时触发事件,如:
{{1}}
答案 0 :(得分:0)
您可以使用语法32x32x3
侦听对象中包含的实例的属性。请参阅container:attribute_name
方法下的装饰器:
_item_update
这将打印:
from traits.api import HasTraits, List, Int, Instance, on_trait_change
class A(HasTraits):
value = Int(0)
class B(HasTraits):
lst = List(Instance(A,()))
@on_trait_change('lst[]')
def _update(self):
print('changed')
@on_trait_change('lst:value')
def _item_update(self, name, new):
print(name, new)
b = B(lst = [A()])
b.lst[0].value=1
文档的“Semantics”部分显示了所有可能的模式。以下部分在Notification Handler Signatures上列出了可能的侦听器方法签名。