特性列表未报告添加或删除的项目

算盘

鉴于

 from enthought.traits.api import HasTraits, Tuple, Delegate, Trait, Float,Dict,List

 class Foo(HasTraits):
     def __init__(self):
         super(Foo,self).__init__()
         self.add_trait('node',List)
     def _node_items_changed(self,name,old,new):    
         print name
         print old
         print new

为什么会得到:

>>> f = Foo()
>>> f.node.append(0)
node_items
<undefined>
<traits.trait_handlers.TraitListEvent object at 0x05BA8CF0>

文档说我应该获得添加/删除的项目列表。

我在这里想念什么?这是Windows 8上的特征4.3。

谢谢!

大卫

似乎有改变收藏价值作为一个整体(的区别List),并改变成员的集合。追加似乎会更改其中的成员(或至少会导致相同的通知)。如果您整体更改容器的值,则确实确实会获得更改后的列表作为new值:

from enthought.traits.api import HasTraits, Tuple, Delegate, Trait, Float,Dict,List

class Foo(HasTraits):
    def __init__(self):
        super(Foo,self).__init__()
        self.add_trait('node',List)
    def _node_changed(self,name,old,new):
        print("_node_changed: %s %s %s" % (name, str(old), str(new)))
    def _node_items_changed(self,name,old,new):
        print("_node_items_changed: %s %s %s" % (name, str(old), str(new)))

f = Foo()

# change the List membership with append:
f.node.append(0)
# _node_items_changed: node_items <undefined> <traits.trait_handlers.TraitListEvent object at 0x10128af50>

# change the List itself:
f.node = [1,2,3]
# _node_changed: node [0] [1, 2, 3]

# change a member (same result as append):
f.node[1] = 4
# _node_items_changed: node_items <undefined> <traits.trait_handlers.TraitListEvent object at 0x10128af50>

如果您还没有看到本节,这里有更多信息也看到这个答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从ObservableCollection添加或删除项目时,列表框未更新

来自分类Dev

下拉列表未添加项目

来自分类Dev

未添加到列表的项目

来自分类Dev

QCheckbox从列表中添加和删除项目

来自分类Dev

如果列表之间未共享,则从列表中删除项目

来自分类Dev

如果列表之间未共享,则从列表中删除项目

来自分类Dev

具有已删除项目的列表未正确绑定

来自分类Dev

向列表添加新项目后,ListView未更新

来自分类Dev

如何使用Knockout JS在列表中添加和删除项目?

来自分类Dev

如何从可排序列表中删除动态添加的项目?

来自分类Dev

如何从可排序列表中删除动态添加的项目?

来自分类Dev

控件。添加从列表中删除以前的项目

来自分类Dev

从Kotlin中的模型添加的可变列表中删除项目

来自分类Dev

动态地从Flutter列表添加和删除项目

来自分类Dev

jQuery中的多选列表添加/删除项目问题

来自分类Dev

如何使用Knockout JS在列表中添加和删除项目?

来自分类Dev

如何从其他表单的列表中添加/删除项目?

来自分类Dev

在 C# 中添加和删除列表中的项目失败

来自分类Dev

如何从数组列表对象中添加和删除项目

来自分类Dev

添加选择列表以删除未填充选择值的VM

来自分类常见问题

从列表中删除项目

来自分类Dev

从列表Ionic删除项目

来自分类Dev

从列表中删除项目

来自分类Dev

从列表Ionic删除项目

来自分类Dev

从列表中删除项目

来自分类Dev

如何仅将项目添加到以前未添加的列表?(C#-ASP.NET)

来自分类Dev

使用ember.js关系从客户的项目列表中添加和删除项目

来自分类Dev

Vue.js:添加新项目后从列表中删除项目导致错误

来自分类Dev

列表框添加项已删除,但文本框项未删除

Related 相关文章

热门标签

归档