我有一個OpenGL的wxpython應用程序,我試圖在Ubuntu工作。它是由Mac OSX開發的(由其他人),並且在那裏工作得很好。Wxpython EVT_CHAR回調沒有被調用
我最近遇到的問題是鍵盤事件沒有被捕獲。
的代碼看起來是這樣的:
class GLFrame(wx.Frame):
def __init__(...):
...
self.canvas.Bind(wx.EVT_MOTION, self.mouseMotion)
self.canvas.Bind(wx.EVT_CHAR, self.character)
...
def character(self, evt):
print "EVT_CHAR"
# do stuff
def mouseMotion(self, evt):
print "EVT_MOTION"
# do stuff
我grepped整個代碼庫綁定調用,而不是其他使用EVT_CHAR,EVT_KET_DOWN或EVT_KEY_UP。我也嘗試了EVT_KEY_DOWN和EVT_KEY_UP,但都沒有成功。
我也試着從
self.canvas.Bind(...)
改變綁定調用
self.Bind(...)
這打破EVT_MOTION和EVT_CHAR回調仍不會被調用。
是否有任何調用可能會在鍵盤事件到達GLFrame之前捕獲?我是wxpython的新手,儘管它對我來說很有意義,但我確信有一些我不知道的「陷阱」。
畫布是否有焦點?也嘗試使用wx.ACCEPTS_CHARS風格(我認爲它...) –
它看起來像樣式是wx.WANTS_CHARS。雖然不起作用。很確定畫布有重點。 –