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

时间:2015-10-16 21:37:56

标签: python psychopy

命中撇号没有做任何事情。 start_scan只是一个textStim。

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

1 个答案:

答案 0 :(得分:4)

那是因为event.getKeys()将撇号作为字符串'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”。但它确实需要更多行代码才能运行。请参阅documentation和Coder下的演示 - >演示 - > iohub - >键盘。