按回车键时会触发不需要的wx.EVT_MENU事件

时间:2017-05-06 16:45:35

标签: python events menu wxpython

在此代码中,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。 我可以安全地使用这个事实来处理或忽略有问题的事件吗?

为什么会发生这种情况?我没有在任何地方定义它。

如果出于某种原因,我可以以某种方式从加速表中删除输入作为快捷方式吗?

0 个答案:

没有答案