2012-02-03 36 views
2

我有一個python程序,它執行以下操作:它彙總問題列表以保存在文本文件中的問題,然後將問題顯示給用戶。顯示問題後,python打開一個文本框,要求用戶輸入他們的答案。在他們按下「輸入」後,要求用戶以1至5的等級對答案進行評分(1非常自信)。所有問題完成後,程序將結果保存在文本文件中。在python中實現按鍵時間測量功能

已編寫腳本,但我想添加一個時間度量腳本,用於度量從問題出現的那一刻起到用戶開始鍵入答案的第一個字母爲止的時間。然後我想讓程序測量從第一次按鍵到按下輸入的時間。因此,我希望程序能夠衡量兩件事情:從問題出現到第一次按鍵的時間,然後從第一次按鍵到用戶按下輸入的時間。任何幫助將不勝感激。

+3

爲了回答這個問題,我們需要更多的信息 - 你用什麼庫來編寫文本框系統?在Tkinter中,將回調綁定到事件,並將時間增量與問題顯示時間進行比較。 – 2012-02-03 14:53:57

+0

我其實不確定你的意思。我在這方面是一個初學者。該計劃是由一位志願參加此項活動的學生編寫的,但現在他不再可用了,我已經嘗試過與之合作。 – 2012-02-03 16:35:33

回答

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

編輯:解除綁定的情況下,用戶按「Enter」鍵

鍵收聽您應該綁定一個按鍵偵聽器(回調函數)來捕獲的關鍵事件在你的回調函數中使用綁定方法和實現邏輯。

+0

嗨艾莉娜。這是試驗的結果: ' 按下 'T' 測量時間:0.796999931335 按下的 'e' 測量時間:1.09400010109 按下的' 測量時間:1.21900010109 按下 'T' 測量時間:1.46900010109 按下'\ r' 測量時間:5.71900010109' 。我按「enter」後如何結束測試,以及如何測量'\ r'和't'之間的時間? – 2012-02-03 18:16:58

+0

Nico我更新了上面的代碼,當用戶按下\ r時停止計時器。如果您想測量\ t和\ r之間的時間,那麼在用戶按下\ t並開始您的計時器並在被按下的情況下完成。時差是你在找什麼 – Aleyna 2012-02-03 20:06:25