我想设置一个接口,以便在侦听特征时,该接口将在不同的预定义View对象之间切换。下面是一个示例:
class App(Handler):
info=Instance(UIInfo)
view_type=Enum('slider_view','spinner_view')
number=Range(1,10)
message=Str('sawmill')
spinner_view=View(Item('number',editor=RangeEditor(mode='spinner',high=10, low=1)),Item('message'),Item('view_type'))
slider_view=View(Item('number',editor=RangeEditor(mode='slider',high=10, low=1)),Item('message'),Item('view_type'))
@on_trait_change('view_type')
def chg_view_type(self):
self.reconstruct()
def init_info(self,info):
self.info=info
def reconstruct(self):
self.info.ui.dispose()
self.info.object.edit_traits(view=self.view_type)这段代码可以正常工作,并完成所展示的玩具示例所需的所有操作。然而,我的应用程序具有复杂的编辑器(包括但不一定限于蛋卷场景的SceneEditor ),它们在被处理时会破坏其全部内容。我想知道是否有一种更简单的方法可以在窗口处于活动状态时动态地更改特定Item或子面板的视图(更改不更改的Instance的视图就可以了),无论是简单还是花招。
发布于 2013-11-25 06:34:30
如果您所需要的只是一个动态可见性,那么应该这样做:https://github.com/enthought/traitsui/blob/master/examples/demo/Dynamic_Forms/visible_when.py
https://stackoverflow.com/questions/20060080
复制相似问题