我在python中遇到按键事件时遇到问题。我有一个文本字段,我想做的是当该文本字段具有焦点并且用户按下Enter键以更改默认行为(将焦点移至下一个小部件)并插入一些功能。
这是我所做的:
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时它将起作用。例如,如果我把e.GetKeyCode()== wx.WXK_SPACE放进去:它将起作用,当按下空格键时它将调用login()函数...似乎仅用于输入它是行不通的。有人知道为什么吗?
最佳答案
在http://docs.wxwidgets.org/2.8/wx_wxtextctrl.html上:
窗口样式
wxTE_PROCESS_ENTER控件将生成事件wxEVT_COMMAND_TEXT_ENTER(否则,按Enter键是由控件内部处理的,或用于对话框控件之间的导航)。
关于python - 捕捉进入按下的事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16897690/