嵌套HasTraits对象的视图

时间:2015-06-08 19:04:30

标签: python enthought traitsui

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

class A(HasTraits):
    b= Any()

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

我想导入b的类并将其分配给A,

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

这样可行,但当B()

时,a的视图不显示在a.configure_traits()

(注意这是相关的,但与this post不相同)

1 个答案:

答案 0 :(得分:2)

您需要使用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