traitsui 視覚化プログラム アプリケーションに一連のメニューを構築しようとしています。私の GUI は、すべてが異なるモデル オブジェクトを使用する一連のパネルで構成されており、それらはすべて InstanceEditors を使用してメイン GUI に表示されます。これには、パネルをいつでもガベージ コレクションして再構築できるなど、多くの利点があります (mayavi にはバグがあるため、これは mayavi の視覚化にとって重要です。多くの場合、ユーザーが多くの変更を行った後、シーンを破棄して最初からやり直す方がよい場合があります)。 )。
GUI のどのサブパネルにもメニューが表示されないという問題があります。
これは最小限の作業例です。
from traits.api import HasTraits, Str, Instance
from traitsui.api import Menu, View, MenuBar, Action, Item, InstanceEditor
class Panel(HasTraits):
field = Str('placeholder_variable')
stuff_action = Action(name='Do stuff', action='do_stuff')
view = View(
Item('field'),
menubar = MenuBar( Menu( stuff_action, name='Menu')),
)
def do_stuff(self):
print '400'
class Application(HasTraits):
panel = Instance(Panel, ())
view = View(
Item('panel', editor=InstanceEditor(), style='custom'))
Application().configure_traits()
予想される動作は、呼び出しPanel().configure_traits()
とApplication().configure_traits()
結果が同じ GUI になり、機能メニュー (クリックすると 400 を出力する「Do stuff」と呼ばれる 1 つの項目) と編集可能な文字列の両方が表示されることです。
私が見ている実際の動作は、パネル GUI には文字列とメニューの両方があり、アプリケーション GUI には文字列がありますが、メニューは表示されません。
内からメニューを GUI ウィジェットとして表示する方法はありますInstanceEditor
か?