Skip to main content
 首页 » 编程设计

python之捕获输入按下事件

2025年05月04日13del

我在 python 中遇到按键事件问题。我有一个文本字段,我想做的是当该文本字段具有焦点并且用户按下 enter 按钮以更改默认行为(将焦点带到下一个小部件)和insted 调用一些函数。 这是我所做的:

self.password_input.Bind(wx.EVT_KEY_DOWN, self.onKeyDown)

def onKeyDown(self, e): 
    print e.GetKeyCode 
    if e.GetKeyCode() == wx.WXK_RETURN: 
        self.login() 
    else: 
        e.Skip() 

但这不起作用。奇怪的是,当我输入任何其他键而不是 WXK_RETURN 时,它会起作用。例如,如果我输入 if e.GetKeyCode() == wx.WXK_SPACE: 它会起作用,它会在按下空格时调用 login() 函数......似乎只对输入不起作用。有人知道为什么吗?

请您参考如下方法:

关于 http://docs.wxwidgets.org/2.8/wx_wxtextctrl.html :

窗口样式

wxTE_PROCESS_ENTER 控件将生成事件 wxEVT_COMMAND_TEXT_ENTER(否则按 Enter 键要么由控件在内部处理,要么用于对话框控件之间的导航)。