python - Python:识别按下了哪些键,处理所有按下的键,然后打印结果
问题描述
我正在为视障人士开发一个键盘程序,它的工作原理类似于 Perkins Brailler。
我的问题是:
- 如何限制程序运行时按下的合法键
- 如何检测所有按下的键(在 0.5 秒内)并直接将按键作为输入处理,然后直接打印处理结果。(例如,我想在同时按下“as”或“sa”键时(顺序无关紧要)翻译成字母“y”)
谢谢
解决方案
您可以使用 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 个不同的盲文字母。一旦你看到哪个组合被按下,你就可以打印它
你不能限制一个人正在输入的击键,但你可以忽略程序不需要的那些(除了主行之外的键?)。
推荐阅读
- algorithm - 使用形状来获得循环的时间复杂度,如何?
- javascript - 如何从个人 github.io 页面读取数据库?
- python - 有没有办法在python中比较2个不同采样率的信号
- python - 维护单个对象或在 python 命令模式中传递上下文
- angular - angular 12 路由加载组件,无需注册模块
- c++ - 为什么我不能在模板中使用 pbds 的 point_iterator?
- plugins - SonarQube 9.0 - FindBugs/SpotBugs 插件?
- java - Android右对齐无法使用Layout.Alignment.ALIGN_OPPOSITE
- yaml - Pandoc 模板:如何按索引对 YAML 数组进行切片?
- c++ - Prime number (Recursive method) in C++