如何填充 psychopy.event.getKeys()?

How to populate psychopy.event.getKeys()?

点击撇号没有任何作用。 start_scan 只是一个 textStim。

while True:
    print event.getKeys()
    start_scan.draw()
    win.flip()
    if "'" in event.getKeys():
        break
    event.clearEvents()

那是因为 event.getKeys() returns 撇号作为字符串 'apostrophe'。要做到这一点

from psychopy import visual, event
win = visual.Window()
while True:
    response = event.getKeys()
    if response:
        print response  # check what the key was
        if 'apostrophe' in response:
            break

您看不到打印的原因是每次调用 event.getKeys() 都会清除事件缓冲区。 event.clearEvents() 当然也是如此。由于您的脚本将花费 99.9% 的时间挂在 win.flip() 上,因此按键不太可能发生在 print event.getKeys() 之前,因此它永远不会打印事件模块如何表示您按下的键.

所以这是需要注意的事情。事件模块并不总是用它们产生的字符来表示键。然而,psychopy.iohub 模块就是这样做的。所以例如像 SHIFT+r 这样的东西变成了 "R"。不过,它确实需要多几行代码才能获得 运行。请参阅编码器 --> 演示 --> iohub --> 键盘下的 documentation 和演示。