Python / Raspberry Pi 问题

Python / Raspberry Pi issue

我正在尝试制作一个带有 raspberry pi 的键盘,例如 this,但我收到此错误,我不知道如何解决

Traceback (most recent call last):
  File "/home/pi/Desktop/koden1.py", line 72, in <module>
    key = keypress()
  File "/home/pi/Desktop/koden1.py", line 44, in keypress
    key = pg.key.name(event.key)
AttributeError: event member not defined

源代码:https://github.com/anttus/Raspberry-MidiKeyboard/blob/master/midikeyboard.py

您得到 AttributeError 是因为您试图访问不存在的 event 对象的 key 属性。让我们看看 event 对象中有什么:

>>> dir(event)
[..., 'dict', 'type']

event.dict 看起来不错,让我们看看里面有什么 event.type :

<Event(17-VideoExpose {})>
<Event(16-VideoResize {'h': 1, 'size': (1, 1), 'w': 1})>
<Event(1-ActiveEvent {'state': 1, 'gain': 0})>
<Event(4-MouseMotion {'pos': (0, 0), 'rel': (1, 1), 'buttons': (0, 0, 0)})>
<Event(2-KeyDown {'unicode': 'a', 'key': 113, 'mod': 0, 'scancode': 16})>

正如您在 "key events" 中看到的那样,我们有您要查找的内容,event.dict.get('key'),不要忘记测试事件是否为 "key event":

event = pg.event.wait()
if event.type == pg.KEYDOWN or event.type == pg.KEYUP:
    key = pg.key.name(event.dict.get('key'))