wxPython KEY_DOWN消息竟然没有响应

bearnedzq 2010-11-12 11:52:29
我想测试键盘消息,找了个简单的程序如下。测试结果让人大跌眼镜
我用的是windows xp,python是2.7

wx.EVT_KEY_DOWN
下列键没有响应 Tab Enter → ↑ ↓ ←

wx.EVT_KEY_UP
所有键都有响应

wx.EVT_CHAR
只有F1 ... F12 PrintScreen ScrollLock PauseBreak 有响应


#!/usr/bin/python
#_*_encoding:utf-8_*_
# keyevent.py

import wx

class KeyEvent(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)

panel = wx.Panel(self, -1)
# panel.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) # 下列没有响应 Tab Enter → ↑ ↓ ←
# panel.Bind(wx.EVT_KEY_UP, self.OnKeyDown) # 全部有响应
panel.Bind(wx.EVT_CHAR, self.OnKeyDown) # 只有F1 ... F12 PrintScreen ScrollLock PauseBreak有反应
panel.SetFocus()

self.Centre()
self.Show(True)

def OnKeyDown(self, event):
keycode = event.GetKeyCode()
keystr = str(keycode)
wx.MessageBox(keystr, 'Info')

event.Skip()

app = wx.App()
KeyEvent(None, -1, 'keyevent.py')
app.MainLoop()

...全文
193 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2010-11-12
  • 打赏
  • 举报
回复
wx是上层框架,事件会按控件类型加工,panel容器来的可能被屏蔽些用不着的,改用textctrl试试...

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧