我目前正在尝试为包含单个对象的许多实例的类制作一个 traitsUI GUI。我的问题与MultiObjectView Example TraitsUI中解决的问题非常相似。
但是,我不喜欢使用上下文的想法,因为它需要我为我拥有的每个对象多次写出相同的视图(而且我可能有很多)。因此,我尝试编辑代码以使其在从 Houses 对象查看时,House 对象的每个 Instance 都默认看起来像它的正常视图。它几乎起作用了,除了现在我得到一个按钮,它将我带到我想要的视图,而不是看到嵌套在一个窗口中的视图(如上面 TraitsUI 示例的输出)。
有没有办法调整以下内容以获得所需的输出?我想我必须进一步编辑 create_editor 函数,但我可以找到很少的文档 - 只有很多链接到不同的特征编辑器工厂......
谢谢,
蒂姆
# multi_object_view.py -- Sample code to show multi-object view
# with context
from traits.api import HasTraits, Str, Int, Bool
from traitsui.api import View, Group, Item,InstanceEditor
# Sample class
class House(HasTraits):
address = Str
bedrooms = Int
pool = Bool
price = Int
traits_view =View(
Group(Item('address'), Item('bedrooms'), Item('pool'), Item('price'))
)
def create_editor(self):
""" Returns the default traits UI editor for this type of trait.
"""
return InstanceEditor(view='traits_view')
class Houses(HasTraits):
house1 = House()
house2= House()
house3 = House()
traits_view =View(
Group(Item('house1',editor = house1.create_editor()), Item('house2',editor = house1.create_editor()), Item('house3',editor = house1.create_editor()))
)
hs = Houses()
hs.configure_traits()