Psychopy mouse.isPressedIn方法不适用于新触摸屏
当使用PsychoPy的mouse.isPressedIn方法时,我们的新Ilyama ProLite T2452MT在使用鼠标点击响应时遇到问题 总而言之,旧的触摸屏和鼠标响应工作正常,但新的触摸屏却不行。新的触摸屏在Windows和PsychoPy中的弹出文本框中运行良好,所以我认为问题在于mouse.isPressedIn方法。只有在框内拖动手指才会触发响应 这是我的密码Psychopy mouse.isPressedIn方法不适用于新触摸屏,psychopy,Psychopy,当使用PsychoPy的mouse.isPressedIn方法时,我们的新Ilyama ProLite T2452MT在使用鼠标点击响应时遇到问题 总而言之,旧的触摸屏和鼠标响应工作正常,但新的触摸屏却不行。新的触摸屏在Windows和PsychoPy中的弹出文本框中运行良好,所以我认为问题在于mouse.isPressedIn方法。只有在框内拖动手指才会触发响应 这是我的密码 win = visual.Window(size=(1920, 1080), fullscr=True, screen
win = visual.Window(size=(1920, 1080), fullscr=True, screen=0, allowGUI=False, allowStencil=False,
monitor='testMonitor', color=[1,1,1], colorSpace='rgb',
blendMode='avg', useFBO=True,
)
rectangle = visual.Rect(win=win, name='Bluebox',
width=[0.3, 0.5][0], height=[0.3, 0.5][1],
ori=0, pos=[0.25, 0],
lineWidth=1, lineColor=[0,0,1], lineColorSpace='rgb',
fillColor=[0,0,1], fillColorSpace='rgb')
mouse = event.Mouse(win=win)
rectangle.draw()
win.flip()
test = True
while test:
if mouse.isPressedIn(rectangle) == True:
test = False
else:
rectangle.draw()
win.flip()
非常感谢,,
大卫我意识到这是两年后的事了,你可能已经解决了,但对其他感兴趣的人来说: 对于触摸屏,我发现最好使用
.contains()
,因为他们在决定什么是点击时有点喜怒无常。为此,您需要将代码更改为:
test = True
while test:
if rectangle.contains(mouse):
test = False
else:
rectangle.draw()
win.flip()
有时,重置光标的位置以停止将其注册为形状可能很有用。为此,请在脚本顶部使用win32api导入SetCursorPos的。然后,当您想要设置光标位置时,只需使用SetCursorPos((0,0))
,其中两个值是以像素为单位的x和y坐标。经常这样做可能是一个好习惯,例如在退出任何while
循环之后