取消绑定wxPython中的默认按钮行为

时间:2013-07-19 03:46:12

标签: python events user-interface binding wxpython

我正在编写一个界面,我想让用户点击一个按钮,然后捕捉他的下一次按键。

我现在可以捕捉键盘上的所有键,除了那些像tab或箭头键那样导致按钮在按下时失去焦点的键。我知道在捕获间隔期间我需要从按键事件中取消绑定窗口。

我已经尝试从框架,笔记本选项卡小部件和其中的面板解除绑定,但它没有工作。

在层次结构中我需要取消绑定按键以避免它们按照通常的方式运行? 感谢

1 个答案:

答案 0 :(得分: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()

我想无论如何