0

ユーザーがボタンをクリックしてから、次のキーストロークをキャプチャするインターフェイスを作成しています。

現在、キーボードのすべてのキーをキャプチャできますが、タブ キーや矢印キーなど、ボタンを押すとフォーカスが失われるものは除きます。キャプチャ間隔中にキープレス イベントからウィンドウをアンバインドする必要があることはわかっています。

フレーム、ノートブック タブ ウィジェット、およびその中にあるパネルからバインドを解除しようとしましたが、うまくいきませんでした。

通常の動作を避けるために、階層内のどこでキーの押下をバインド解除する必要がありますか? ありがとう

4

1 に答える 1

1
import wx 

a = wx.App(redirect=False)
class XFrame(wx.Frame):
    def __init__(self,*args):
        wx.Frame.__init__(self,*args)
        b = wx.Button(self,-1,"Click")
        b.Bind(wx.EVT_BUTTON,self.OnButton)
    def OnButton(self,evt):
        self.SetFocus()
        self.Bind(wx.EVT_CHAR,self.OnChar)
    def OnChar(self,evt):
        print evt.KeyCode
        self.Unbind(wx.EVT_CHAR)

f = XFrame(None,-1,"A Frame")

f.Show()
a.MainLoop()

とにかく思う

于 2013-07-19T06:02:55.807 に答える