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

当使用PsychoPy的mouse.isPressedIn方法时,我们的新Ilyama ProLite T2452MT在使用鼠标点击响应时遇到问题

总而言之,旧的触摸屏和鼠标响应工作正常,但新的触摸屏却不行。新的触摸屏在Windows和PsychoPy中的弹出文本框中运行良好,所以我认为问题在于mouse.isPressedIn方法。只有在框内拖动手指才会触发响应

这是我的密码

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
循环之后