Каковы имена клавиш pygame для цифровых клавиш на клавиатуре azerty?
Каковы имена ключей pygame для цифровых клавиш на раскладке azerty? Мне нужно знать это, чтобы иметь возможность правильно обнаруживать нажатия клавиш на макете azerty, которого у меня нет.
Я попытался переключить раскладку клавиатуры Mac на французский — ПК, и названия клавиш отображаются как:
1234567890)=
когда я ожидал: в базе кода pygame я не вижу коды французских клавиш.
Может ли кто-нибудь с клавиатурой France AZERY протестировать это? Вы можете проверить это, запустив
python samples/pressed_keys_pygame.py azerty_laptop
из этой ветки и нажимая все цифровые клавиши по порядку и глядя на ввод терминала.
Я получаю эту информацию от pygame при использовании
French - PC
макет:
{'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 или моя французская раскладка клавиатуры не используют правильные скан-коды? Вот как это выглядит, потому что эти скан-коды для ПК разные . Различаются ли коды клавиш на разных платформах ? Моя среда — MacOS 10.14.6, и когда я печатаю с французской раскладкой ПК в других приложениях или в терминале tkinter, ожидаемый
&é”’(-è_çà)=
текст печатается.
Судя по приведенным выше результатам, значения ключей pygame совпадают со значениями keysym_num для tkinter . Также при использовании tkinter и регистрации ключевых событий; Я вижу разные значения для значений pygame even.key/tkinter event.keysym_num, поэтому похоже, что pygame обрабатывает эти ключи не так, как я ожидал. Tkinter выглядит так, как будто обрабатывает их правильно. Эти результаты получены в результате моего тестирования на клавиатуре qwerty с использованием французской раскладки ПК.
1 ответ
Заранее извините за мой плохой английский. (я не говорю по-английски как родной)
В раскладках Azerty есть возможность нажимать клавишу Shift для ввода цифр.
Как видно здесь:
В то время как при использовании раскладки qwerty вам не нужно нажимать клавишу schift для ввода цифр. Как видно здесь:
Надеюсь, вы сможете решить возникшую у вас проблему.