我在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的键码。
如果您想知道我为什么这样做,这个案例研究有点奇怪:我有一个巨大的文本区域,其中以编程方式输入文本(通过连接到远程服务器),但用户可以在该字段中键入。然而,当他这样做时,光标被移动到最后一行…这有点像拥有一个只读文本区域,除了最后一行。我这样做是出于可访问性的原因,我知道两个单独的字段会更简单,但是,这对屏幕阅读器来说不是很好。
谢谢你的帮助!
您是否考虑过在set()
中定义导航键,然后检查该键是否在导航集中,而不是测试所有其他键?
集