gpt4 book ai didi

python - Surface Pro 6 上的 Psychopy : Can touchscreen be used to press AND hold a button similar to a mouse click?

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:26 25 4
gpt4 key购买 nike

规范:

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

背景:我正在编写一个用于 child 的触摸屏任务(下面链接的引用图片)。在任务中, children 需要按住屏幕底部的红色“主页”按钮 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 像使用鼠标一样在触摸屏上注册按住,以便 child 按下“主页”按钮继续试验?
  • 如果是,我能否让 PsychoPy 以与鼠标点击相同的方式输出“按下”(当触摸屏幕时)和“释放”(当触摸不再存在时)输出?
  • 如果这不能通过 PsychoPy 库完成,是否有我可以尝试的 PsychoPy 之外的 Python 解决方案?

尝试过的解决方案:

最佳答案

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

        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,你会返回到你的用例中你需要的任何地方。您可能会发现将此逻辑捆绑在一个函数中很方便,只要“按主页”为真,您就可以调用该函数。

希望这有帮助,干杯。

关于python - Surface Pro 6 上的 Psychopy : Can touchscreen be used to press AND hold a button similar to a mouse click?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com