首页 > 解决方案 > 如何使用 pyglet 或 pygame 接收非字母键盘输入?

问题描述

是否可以在 Pyglet 或 Pygame 中获取非字母数据(如中文、韩文、日文)的键盘输入?

在使用 Python3 的 MacOS 环境中,可以在 python 级别毫无问题地接收非字母的文本字符串。However, Pyglet key functions give error when non-english keyboard input is selected. 相比之下,Pygame 只是忽略键盘输入设置并在每个键盘中获取小写字母输入。

我检查了 Pyglet 和 Pygame 的代码,在 Pyglet 键输入功能中无法识别非拉丁字符似乎是根本问题。

    Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 234, in 'calling callback function'
  File "/Applications/PsychoPy3.app/Contents/Resources/lib/python3.6/pyglet/libs/darwin/cocoapy/runtime.py", line 1121, in objc_method
    result = f(py_self, *args)
  File "/Applications/PsychoPy3.app/Contents/Resources/lib/python3.6/pyglet/window/cocoa/pyglet_view.py", line 158, in pygletKeyDown_
    symbol = getSymbol(nsevent)
  File "/Applications/PsychoPy3.app/Contents/Resources/lib/python3.6/pyglet/window/cocoa/pyglet_view.py", line 52, in getSymbol
    return charmap[chars[0].upper()]
KeyError: '\u3141'

有人成功使用非字母键盘输入键吗?

标签: pythonpython-3.xpygamepyglet

解决方案


推荐阅读