Ubuntuで動作させようとしているOpenGLwxpythonアプリがあります。Mac OSXで(他の誰かによって)開発され、そこでは問題なく動作します。
私が抱えている最後の未解決の問題は、キーボードイベントがキャプチャされないことです。
コードは次のようになります。
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
Bind呼び出しのコードベース全体を取得しましたが、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を初めて使用します。ほとんどの場合、それは私には理にかなっていますが、私が気付いていない「落とし穴」があると確信しています。