首页 > 解决方案 > Python:识别按下了哪些键,处理所有按下的键,然后打印结果

问题描述

我正在为视障人士开发一个键盘程序,它的工作原理类似于 Perkins Brailler。

我的问题是:

  1. 如何限制程序运行时按下的合法键
  2. 如何检测所有按下的键(在 0.5 秒内)并直接将按键作为输入处理,然后直接打印处理结果。(例如,我想在同时按下“as”或“sa”键时(顺序无关紧要)翻译成字母“y”)

谢谢

标签: python

解决方案


您可以使用 pygame.key.get_pressed() 方法查看当前正在按下哪些键。它返回一个布尔值列表,当前正在按下哪些键。

while True:
    keys = pygame.key.get_pressed()
    A, S, D = keys[K_a], keys[K_s], keys[K_d] # add right hand dots as well
    braille_dict = {'a': D, 'b': D and S,} # and so on for every combination

然后,您需要使用逻辑“与”运算符检查每个击键组合以生成不同的盲文字母。因此,如果同时按下 2 个键,则它可能会生成与依次按下的 2 个不同的盲文字母。一旦你看到哪个组合被按下,你就可以打印它

你不能限制一个人正在输入的击键,但你可以忽略程序不需要的那些(除了主行之外的键?)。


推荐阅读