【问题标题】:Python: Identify which keys are pressed, process all the key pressed then print the resultPython:识别按下了哪些键,处理所有按下的键,然后打印结果
【发布时间】:2018-05-08 10:39:36
【问题描述】:

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

我的问题是:

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

谢谢

【问题讨论】:

  • 我认为您指的是以一种相当原始的方式访问(特殊?)键盘设备。这低于 Python 单独的范围,将取决于您的设备所连接的计算机上运行的操作系统。请提供有关键盘外围设备的更多信息。
  • 您好,Alfe,感谢您的回复。我不想访问特殊键盘。我正在尝试制作一个将盲文字符转换为字母字符的程序。

标签: python


【解决方案1】:

您可以使用 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 个不同的盲文字母。一旦你看到按下了哪个组合,你就可以打印它了

您不能限制键入的按键,但您可以忽略程序不需要的按键(主行之外的按键?)。

【讨论】:

  • 为什么会出现“pygame.error: video system not initialized”错误?
  • @Michael 因为你做了/调用了某事,可能是pygame.init(),视频系统无法初始化。
  • 是的。您需要先调用 pygame.init() 。您可以稍微阅读一下文档here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多