嵌套 HasTraits 对象的视图

views on Nested HasTraits object

使用嵌套 HasTraits,我无法让视图按预期工作。例如:

class A(HasTraits):
    b= Any()

...
view = View(...
    Item('b', style='custom')
...

我想导入b的class赋值给A,

from some_other_mod import B 
# B HasTraits also
a = A(b = B())

这有效,但是 B() 的视图不显示在 a 中,当我 a.configure_traits()

(注意这与 this post 相关,但不完全相同)

您需要使用 InstanceEditor

class A(HasTraits):
    b = Instance(HasTraits)
    traits_view = View( Item('b', editor=InstanceEditor(), style='custom') )

class B(HasTraits):
    c = Int
    traits_view = View( Item('c') )

请注意,Instance 特征默认使用 InstanceEditor。默认情况下,Any 特征使用 TextEditor