在此代码中,EVT_MENU正在为输入键触发,但未在菜单中定义快捷方式。
import wx
class Interface(wx.Frame):
def __init__ (self):
wx.Frame.__init__(self, None, -1, "Testwin", size=(300, 300))
self.CenterOnScreen()
self.SetMenus()
# Ignore default sizer that stretches lonely panel to cover everything
sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(sizer)
panel = wx.Panel(self, -1, size=(100, 100), pos=(100, 100))
panel.SetBackgroundColour(wx.Colour(255, 255, 255))
self.Show()
self.Raise()
def SetMenus (self):
m = wx.Menu()
m.Append(100, "E&xit\tAlt+F4")
mb = wx.MenuBar()
mb.Append(m, "&File")
self.SetMenuBar(mb)
self.Bind(wx.EVT_MENU, self.MenuManager)
def MenuManager (self, e):
id = e.GetId()
print id
if id==100: self.Close()
app = wx.App()
i = Interface()
app.MainLoop()
这是在Win XP Pro SP3上发生的。
按下Enter键时触发的事件的ID为1。 我可以安全地使用这个事实来处理或忽略有问题的事件吗?
为什么会发生这种情况?我没有在任何地方定义它。
如果出于某种原因,我可以以某种方式从加速表中删除输入作为快捷方式吗?