- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
每次受试者按下一个键时,我都想显示不同的文本对象,具体取决于刚刚按下的是哪个键,我只想使用特定的键进入下一个试验。
例如,屏幕应该显示文字“5”,然后如果受试者按下向下键,它会变为“4”,如果他们按下向上键,它就会变为“6”等等,但是如果他们按下回车键我们转到下一张幻灯片。
如何解决这个问题?
我一直在使用构建器 View 来创建一个通用框架,然后一直在单独处理代码本身。我尝试插入这样的循环:
inloop=True
while inloop:
print "in the loop"
if event.getKeys('return'):
inloop = False
continueRoutine=False
elif event.getKeys('left'):
print "left key pressed"
elif event.getKeys('right'):
print "right key pressed"
elif event.getKeys('escape'):
core.quit()
如果我把它放在我想要这种行为的例程的 ContinueRoutine 循环中,我将无法“进入循环”或打印任何其他打印语句,因此它似乎没有进入循环。我也试过把它放在其他几个地方,但遇到了类似的困难。你会在哪里插入这样一个循环,这看起来是解决这个问题的好方法吗?
最佳答案
作为一般性建议,从长远来看,将它添加到构建器代码组件中对您来说会更容易。从构建器到编码器是一种单向的方式——代码中的编辑不能带回构建器。或者您可以使用完整代码,在这种情况下,建议您从头开始编写。
关于您当前代码不起作用的原因的一些评论:
作为改进时间安排(和概念清晰度)的建议:如果在等待按键时视觉对象是静态的,我将只使用 waitKeys,这样某些事情只会在按键时发生。这也会提高相对于 getKeys() 的准确性,当与 win.flip() 放在一个循环中时,getKeys() 被锁定到帧。
因此您可以在代码组件中执行以下操作,该组件应位于文本下方:
while True: # Yes, continue listening forever...
resp_key = event.waitKeys(keyList=['left','right','up','down','return'])[0] # pick first and only response.
# Set different texts dependent on received response
if resp_key == 'left':
yourTextStimulus.text = '5'
elif resp_key == 'right':
yourTextStimulus.text = '7'
elif resp_key == 'up':
yourTextStimulus.text = '2'
# .. or break out of the loop if return was pressed
elif resp_key == 'return':
break # oh, do NOT continue forever... we're finished on return :-)
# Actually show text if loop was not ended
yourTextStimulus.draw()
win.flip()
将“yourTextStimulus”重命名为您的文本名称。当然,如果需要,您可以将其调整为更多/不同的键,并使实际字符串(当前为“5”、“7”、“2”)依赖于试验。
关于python - 心理生成器 : how to update screen each keypress?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400837/
我有四个 unix 时间。两个是“今天”(可能是哪一天)的开始和结束 - 即 00:00:00 和 23:59:59 - 另外两个是用户选择的时间。 我需要的是一个(TSQL 友好的)查询来检查“今天
我有这个 JSON 对象: { "foo" : { "58eedc4298d1712b870c8e0a" : false, "58eedc4298d1712b8
我想知道检查给定点(眼睛坐标)是否在特定区域(在本例中为圆圈)内的最有效方法。 代码: win = visual.Window([600,600], allowGUI=False) coordinat
我正在加载属于城市 235 的男性用户列表。好的,这很简单。但现在我如何加载属于城市 235 或 236 的男性用户列表? BeanManager beanManager = new BeanMana
我是一名优秀的程序员,十分优秀!