4

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

4

1 に答える 1

0

動的な可視性だけが必要な場合は、次のようにする必要があります: https://github.com/enthought/traitsui/blob/master/examples/demo/Dynamic_Forms/visible_when.py

于 2013-11-24T22:34:29.730 に答える