我对wxPython中的OnKeyDownEvent有点问题。如果用户正在键入一个字符(如A,),/,é,&,...),那么我想采取不同的行动。如果它只是导航(箭头键,pageUp / pageDown,home / end,Ctrl) + A或C或V等等)。基本上,我提取修饰符和键代码如下:
modifiers = e.GetModifiers()
key = e.GetUnicodeKey()
if not key:
key = e.GetKeyCode()
但在那之后,嗯,这有点复杂。有一段时间,我测试了key的值:
if modifiers == wx.MOD_NONE and 0 < key < 255:
但那不是真的有效......而且不是很漂亮。例如,右括号显然有一个大于255的密钥代码。
如果你想知道为什么我这样做,案例研究有点奇怪:我有一个巨大的文本区域,其中以编程方式输入文本(通过连接到远程服务器),但用户可以输入领域。 然而,当他这样做时,光标移动到最后一行......这有点像只有最后一行的只读文本区域。我这样做是出于可访问性的原因,我知道使用两个单独的字段会更简单,但是,对于屏幕阅读器而言,这并不是那么好。
感谢您的帮助!