在Python中实现击键时间测量功能
我有一个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'键,要取消绑定的按键监听器。
你应该使用绑定方法将一个按键监听器(回调函数)绑定到按键事件上,这样就可以捕捉到按键的动作,并在你的回调函数里实现相应的逻辑。