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
ただし、私のアプリケーションには複雑なエディター ( mayavi シーン用を含むが、必ずしもこれに限定されるわけではありません) があり、破棄するとコンテンツ全体が破棄されます。ウィンドウがアクティブなときに、特定Item
のパネルまたはサブパネルのビューを動的に変更するより簡単な方法があるかどうか疑問に思っています (変更されないビューを変更しても問題ありません)。Instance