You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测量Spyder(Python3.8)中psychopy.gui的Dlg对话框的应答反应时长?

实现方案

完全可以测量该对话框的应答反应时长,你可以借助Python自带的time模块或者Psychopy内置的计时工具实现,逻辑完全匹配你提出的计时规则:
answer.show()是阻塞方法,代码运行到该语句时会立即弹出对话框,同时程序暂停等待用户操作,直到用户提交后才会继续执行后续代码,因此只需要分别在show()执行前后记录时间戳,两者差值就是目标反应时长。

方法1:使用Python标准库time实现

import psychopy.gui
import time

# 初始化对话框
answer = psychopy.gui.Dlg(title="Answer")
answer.addField("请输入变位词答案:")

# 弹窗弹出前立刻记录开始时间
start_time = time.time()
# 弹出对话框,阻塞等待用户提交
answer.show()
# 用户提交后立刻记录结束时间
end_time = time.time()

# 计算反应时长,单位为秒,保留3位小数
reaction_time = round(end_time - start_time, 3)

# 可选:判断用户是否点击确定提交,排除取消操作的无效数据
if answer.OK:
    user_input = answer.data[0]
    print(f"用户输入:{user_input},反应时长:{reaction_time}秒")
else:
    print("用户取消输入,本次反应时长无效")

方法2:使用Psychopy内置计时器(精度更高,更适配心理学实验场景)

import psychopy.gui
from psychopy import core

# 初始化高精度计时器
rt_clock = core.Clock()

answer = psychopy.gui.Dlg(title="Answer")
answer.addField("请输入变位词答案:")

rt_clock.reset() # 弹窗弹出前重置计时器为0
answer.show()
reaction_time = round(rt_clock.getTime(), 3) # 直接获取从重置到提交的时长

if answer.OK:
    user_input = answer.data[0]
    print(f"用户输入:{user_input},反应时长:{reaction_time}秒")

内容的提问来源于stack exchange,提问作者Real Shinteki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:54:04