просмотры объекта Nested HasTraits

У меня возникли проблемы с тем, чтобы представления работали должным образом, используя вложенные 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()

(Обратите внимание, что это связано, но не идентично этому сообщению )


person alex    schedule 08.06.2015    source источник


Ответы (1)


Вам нужно использовать 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.

person aestrivex    schedule 08.06.2015