您好StackOverflow Hive Mind;wxPython:MenuBar綁定事件在Init上執行
我正在學習如何使用wxPython,它爲我正在編寫的應用程序製作GUI。我一直在深入研究,直到我注意到我無法正確創建菜單欄。無論我做錯了什麼,都會導致我的事件綁定在程序運行時執行。這是有問題的代碼。應該忽略小的拼寫錯誤,我正在重新鍵入我的開發機器,這是脫機的,所以我可能會在這裏或那裏錯過一個關鍵。
def onDocClick():
message = wx.MessageBox("did it work?","Question",wx.YES_NO)
def onAboutClick():
pass
frame = wx.Frame(parent=None,title="RVR GUI",size=(315,490))
frame.Show()
panel = wx.Panel(frame,-1,size=(315,490)
menubar = wx.MenuBar()
fileMenu = wx.Menu()
documentation = fileMenu.Append(wx.ID_NEW,"Documentation")
about = fileMenu.Append(wx.ID_ABOUT,"About")
menuBar.Append(fileMenu,'File')
frame.SetMenuBar(menubar)
menubar.Bind(wx.EVT_MENU,onDocClick(),documentation)
menubar.Bind(wx.EVT_MENU,onAboutClick(),about)
還有很多更重要的GUI比,但代碼的其餘部分工作正常,所以我不認爲你需要它。基本上發生的是,只要我運行打開GUI的腳本,onDocClick()中的消息框就會執行。其中一個我點擊amy按鈕,GUI的其餘部分初始化正常,點擊「文檔」菜單條目絕對不會發生任何事情。我有一種感覺,我很可能錯過了一些簡單的東西,或許是wx.EVT_MENU在這種情況下不適合使用?如果是這樣的話,那麼正確的使用是什麼?我在wxPython上看到的每一個教程都是這樣做的,沒有解釋。老實說,我對wxPython缺乏有意義的文檔感到震驚。 Zetcode教程,甚至是永遠有用的Mouse vs Python,似乎都正釉於工具包工作原理的基礎上。但是我離題了,我一直在做,我剛剛被這個完全弄糊塗了。無論如何謝謝,我感謝任何迴應!
Michael
謝謝菲尼亞斯,你的建議我現在能夠得到該代碼按計劃工作!你搖滾! – 2012-03-06 18:57:23