1

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 键盘上进行的测试得出的。

4

0 回答 0