1

メニューシステムに問題があります-私が従った基本的なメニューの例を示す基本的な例がここ(以下)にあります。具体的には、私の問題は、使用メニューの選択からどのように決定を下すことができるかということです。ユーザーの選択とメニューの選択をどのように相互作用させるかがわかりません。誰かが私を正しい方向に向けることができますか、または理想的にはこれについて簡単な例を挙げてください-メニューからデータを入力してこれを表示するとしますか?

ありがとう

import wx

class myFrame(wx.Frame):
    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id,'Menu', size=(300,200))
        panel = wx.Panel(self)

        status     = self.CreateStatusBar()
        menubar    = wx.MenuBar()
        firstMenu  = wx.Menu() 
        secondMenu = wx.Menu()


        # create files
        firstMenu.Append(wx.NewId(), 'Save Data'  , 'Save data')        
        firstMenu.Append(wx.NewId(), 'Open Data..', 'Open a new window') 
        secondMenu.Append(wx.NewId(),'Configure..', 'Input Data here')
        # append to menu
        menubar.Append(firstMenu, 'File')
        menubar.Append(secondMenu,'Options')
        # 
        self.SetMenuBar(menubar)

if( __name__ == '__main__' ):
    app = wx.PySimpleApp()
    frame = myFrame(parent=None, id=-1)
    frame.Show()
    app.MainLoop()
4

1 に答える 1

2

wx.EVT_MENUイベントをバインドする必要があります。その他の例については、wxPythonデモを参照してください。あなたの場合、それは次のように考えられます:

import wx

SAVE_DATA = wx.NewId()
OPEN_DATA = wx.NewId()
CONFIGURE = wx.NewId()

class myFrame(wx.Frame):
    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id,'Menu', size=(300,200))
        panel = wx.Panel(self)

        status     = self.CreateStatusBar()
        menubar    = wx.MenuBar()
        firstMenu  = wx.Menu() 
        secondMenu = wx.Menu()

        # create files
        firstMenu.Append(SAVE_DATA, 'Save Data'  , 'Save data')        
        firstMenu.Append(OPEN_DATA, 'Open Data..', 'Open a new window') 
        secondMenu.Append(CONFIGURE,'Configure..', 'Input Data here')
        # append to menu
        menubar.Append(firstMenu, 'File')
        menubar.Append(secondMenu,'Options')
        # 
        self.SetMenuBar(menubar)

        self.Bind(wx.EVT_MENU, self.SaveData, id=SAVE_DATA)
        self.Bind(wx.EVT_MENU, self.OpenData, id=OPEN_DATA)
        self.Bind(wx.EVT_MENU, self.Configure, id=CONFIGURE)

    def SaveData(self, e):
        print("Save")

    def OpenData(self, e):
        print("Open")

    def Configure(self, e):
        print("Config")

if( __name__ == '__main__' ):
    app = wx.PySimpleApp()
    frame = myFrame(parent=None, id=-1)
    frame.Show()
    app.MainLoop()
于 2013-01-28T12:11:09.973 に答える