wxpython захватывает события клавиатуры в wx.Frame

Я пытаюсь захватить события клавиатуры, которые происходят внутри wx.Frame, и я ожидал бы, что следующий код захватит эти события. Однако обработчик OnKeyDown никогда не вызывается, когда я запускаю код:

import logging as log
import wx

class MainWindow(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(200,100))

        self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.Bind(wx.EVT_KEY_UP, self.OnKeyDown)
        self.Bind(wx.EVT_CHAR, self.OnKeyDown)
        self.SetFocus()
        self.Show(True)

    def OnKeyDown(self, event=None):
        log.debug("OnKeyDown event %s" % (event))

if __name__ == "__main__":
    app = wx.App(False)
    gui = MainWindow(None, "test")
    app.MainLoop()

Если кто-нибудь знает, как это сделать, я был бы признателен за некоторую помощь.

5
задан Kevin 3 January 2012 в 02:02
поделиться