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

时间:2012-02-03 14:49:48

标签: python

我有一个python程序,它执行以下操作:它汇总问题以保存在文本文件中的问题列表,然后它向用户显示问题。显示问题后,python打开一个文本框,要求用户输入他们的答案。在他们按下“输入”之后,要求用户以1到5的等级(1非常自信)对答案的置信度进行评分。完成所有问题后,程序会将结果保存在文本文件中。

此脚本已编写,但我想添加一个时间测量脚本,用于衡量从问题出现的那一刻起到用户开始输入答案的第一个字母的时间。然后我希望程序测量从第一次按键到按下输入的那一刻的时间。所以,再次,我希望该程序可以测量两件事:从问题出现的那一刻起到第一次击键的时间,然后从第一次击键到用户按下输入的那一刻。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

如果您使用的是Tkinter(more here):

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()

编辑:unbind键侦听器,以防用户按下'enter'

您应该绑定一个键侦听器(回调函数)以使用bind方法捕获键事件,并在回调函数中实现逻辑。