在Python中实现击键时间测量功能

2 投票
1 回答
1357 浏览
提问于 2025-04-17 12:16

我有一个Python程序,它的功能是这样的:它会把保存在一个文本文件里的问题汇总起来,然后把这些问题展示给用户。在显示问题后,Python会打开一个文本框,要求用户输入他们的答案。在用户按下“回车”键后,程序会让他们在1到5的范围内给自己的答案打个信心分(1分表示非常有信心)。当所有问题都回答完后,程序会把结果保存到一个文本文件里。

这个程序的脚本已经写好了,但我想添加一个计时功能,来测量从问题出现的那一刻,到用户开始输入答案的第一个字母之间的时间。接着,我还想测量从用户第一次按键,到他们按下回车键之间的时间。所以,我希望程序能测量两个时间段:一个是从问题出现到第一次按键的时间,另一个是从第一次按键到用户按下回车的时间。任何帮助都将非常感谢。

1 个回答

3

如果你在使用Tkinter(更多内容在这里):

from Tkinter import *
from time import time

start_time = end_time = 0
master = Tk()
e = Entry(master)
e.pack()
e.focus_set()

def key(event):
    if event.char == '\r':
        e.unbind("<Key>")
        return

    print "pressed", repr(event.char)
    end_time = time()
    print "measured time:", end_time-start_time

e.bind("<Key>", key)

start_time = time()
mainloop()

补充:如果用户按下'enter'键,要取消绑定的按键监听器。

你应该使用绑定方法将一个按键监听器(回调函数)绑定到按键事件上,这样就可以捕捉到按键的动作,并在你的回调函数里实现相应的逻辑。

撰写回答