azerty 布局上数字键的 pygame 键名是什么?我需要知道这一点才能正确检测我没有的 azerty 布局上的按键。
我尝试将我的 mac 键盘布局切换到法语 - PC 并且键名显示为:
1234567890)=
当我期望时:
&é”’(-è_çà)=
在 pygame 代码库中,我看不到法语键码。
有法国 AZERY 键盘的人可以测试一下吗?您可以通过python samples/pressed_keys_pygame.py azerty_laptop
从该分支运行并按顺序按所有数字键并查看终端输入来测试它。
French - PC
使用布局时,我从 pygame 获得此信息:
{'unicode': '', 'key': 49, 'mod': 0, 'scancode': 30, 'window': None} key_name = 1
{'key': 49, 'mod': 0, 'scancode': 30, 'window': None} key_name = 1
{'unicode': '', 'key': 50, 'mod': 0, 'scancode': 31, 'window': None} key_name = 2
{'key': 50, 'mod': 0, 'scancode': 31, 'window': None} key_name = 2
{'unicode': '', 'key': 51, 'mod': 0, 'scancode': 32, 'window': None} key_name = 3
{'key': 51, 'mod': 0, 'scancode': 32, 'window': None} key_name = 3
{'unicode': '', 'key': 52, 'mod': 0, 'scancode': 33, 'window': None} key_name = 4
{'key': 52, 'mod': 0, 'scancode': 33, 'window': None} key_name = 4
{'unicode': '', 'key': 53, 'mod': 0, 'scancode': 34, 'window': None} key_name = 5
{'key': 53, 'mod': 0, 'scancode': 34, 'window': None} key_name = 5
{'unicode': '', 'key': 54, 'mod': 0, 'scancode': 35, 'window': None} key_name = 6
{'key': 54, 'mod': 0, 'scancode': 35, 'window': None} key_name = 6
{'unicode': '', 'key': 55, 'mod': 0, 'scancode': 36, 'window': None} key_name = 7
{'key': 55, 'mod': 0, 'scancode': 36, 'window': None} key_name = 7
{'unicode': '', 'key': 56, 'mod': 0, 'scancode': 37, 'window': None} key_name = 8
{'key': 56, 'mod': 0, 'scancode': 37, 'window': None} key_name = 8
{'unicode': '', 'key': 57, 'mod': 0, 'scancode': 38, 'window': None} key_name = 9
{'key': 57, 'mod': 0, 'scancode': 38, 'window': None} key_name = 9
{'unicode': '', 'key': 48, 'mod': 0, 'scancode': 39, 'window': None} key_name = 0
{'key': 48, 'mod': 0, 'scancode': 39, 'window': None} key_name = 0
{'unicode': '', 'key': 41, 'mod': 0, 'scancode': 45, 'window': None} key_name = )
{'key': 41, 'mod': 0, 'scancode': 45, 'window': None} key_name = )
{'unicode': '', 'key': 61, 'mod': 0, 'scancode': 46, 'window': None} key_name = =
{'key': 61, 'mod': 0, 'scancode': 46, 'window': None} key_name = =
pygame 或我的法语键盘布局没有使用正确的扫描码吗?这就是它的样子,因为这些 pc 扫描码是不同的。关键代码是否因平台而异?我的环境是 MacOS 10.14.6,当我在其他应用程序或 tkinter 终端中使用法语 - PC 布局键入时,&é”’(-è_çà)=
会打印预期的文本。
根据上述结果,看起来 pygame 键值与 tkinter 的keysym_num 值相同。同样在使用 tkinter 和记录关键事件时;我看到 pygame even.key/tkinter event.keysym_num 值的不同值,所以看起来 pygame 处理这些键的方式与我预期的不同。Tkinter 看起来它正在正确处理它们。这些结果是根据我在使用法语 - PC 布局的 qwerty 键盘上进行的测试得出的。