【问题标题】:Psychopy on Surface Pro 6: Can touchscreen be used to press AND hold a button similar to a mouse click?Surface Pro 6 上的 Psychopy:可以使用触摸屏来按住类似于鼠标单击的按钮吗?
【发布时间】:2019-02-08 18:05:49
【问题描述】:

规格:

  • 使用 PsychoPy v1.90.3
  • 运行 Windows 10 的 Window 10 Pro 6

背景: 我正在编写一个与儿童一起使用的触摸屏任务(下面链接的参考图片)。在任务中,孩子们需要按住屏幕底部的红色“主页”按钮 1.5 秒来进行试验(即打开屏幕顶部的窗户以显示他们可以打开的框)。我还收集了鼠标按钮被按下和释放的时间(用于计算响应时间)。 我最初使用鼠标在我的桌面上编写了此任务,因此使用此代码按住主页按钮没有问题:

mouse = event.Mouse(visible=True)

     while not homePressed: 
         if mouse.isPressedIn(home) and home.contains(mouse):                
             core.wait(1.5, hogCPUperiod=1.5)                      ## when home button is pressed, wait for 1.5s
             if mouse.isPressedIn(home) and home.contains(mouse):  ## check if home button is still pressed
               homePressed=True 

当我尝试在 Surface Pro 上运行任务时,我遇到了触摸屏没有注册“按住”的问题。我了解到,除非屏幕被按下并释放,否则触摸屏不会记录鼠标点击,因为按住可能是 (1) 右键单击​​或 (2) 滑动。我尝试在 Surface Pro 上禁用“按住”注册为右键单击选项,但这并没有解决我的问题。

问题:

  • 有没有办法让 Surface Pro 或 PsychoPy 像使用鼠标一样在触摸屏上注册按下并按住,以便孩子按下“主页”按钮继续试验?
  • 如果是,我能否让 PsychoPy 以与鼠标单击相同的方式输出“按下”(触摸屏幕时)和“释放”(不再出现触摸时)输出?
  • 如果使用 PsychoPy 库无法实现这一点,我可以尝试 PsychoPy 之外的其他 Python 解决方案吗?

已尝试的解决方案:

【问题讨论】:

    标签: python touch touchscreen psychopy surface-pro


    【解决方案1】:

    您可以尝试编写一个循环来自己检查保持时间。例如,在凝视条件研究中,我们使用循环来检查某人注视某物的时间,类似于您的“保持”变量。

            tCueOn=expClock.getTime()
            while True:
                curtime=expClock.getTime()-tCueOn
    
                eventType=eyelink.getNextData()         
                sample=eyelink.getNewestSample()
    
                <<... a bunch of sample processing cut out ...>>
    
                if curtime>=cueTime:
                    break
    

    在您的情况下,您检测到压力,获取时间,然后进入循环,在该循环中反复检查压力状态是否仍然正确并且时间小于 1.5。当它超过 1.5 时,您会中断循环,或者如果它们的延迟小于 1.5,您将返回到用例中需要的任何位置。您可能会发现将这个逻辑捆绑在一个函数中很方便,只要“press home”为真,您就可以调用该函数。

    希望这会有所帮助,干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 2019-05-19
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多