2012-02-03 2 views
2

다음과 같은 python 프로그램이 있습니다. 텍스트 파일에 저장된 질문 목록에 대한 질문을 집계 한 다음 사용자에게 질문을 표시합니다. 질문을 표시 한 후, 파이썬은 사용자에게 대답을 입력하라는 텍스트 상자를 엽니 다. 그들이 "enter"를 누르면, 사용자는 1 ~ 5의 척도 (1은 매우 자신감)로 대답에 자신감을 평가하도록 요청받습니다. 모든 질문이 끝나면 프로그램은 결과를 텍스트 파일에 저장합니다.Python에서 키 입력 시간 측정 기능 구현

이 스크립트는 작성되었지만 질문이 나타나는 순간부터 사용자가 답변의 첫 글자를 입력하기 시작한 순간까지의 시간을 측정하는 시간 측정 스크립트를 추가하고 싶습니다. 그런 다음 프로그램이 첫 번째 키 입력에서부터 Enter 키를 누를 때까지의 시간을 측정하기를 원합니다. 다시 한번 저는이 프로그램이 질문을하는 순간부터 첫 번째 키 입력까지의 시간과 첫 번째 키 입력에서 사용자가 입력 한 순간까지의 두 가지 시간을 측정하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다. 당신이 Tkinter를 (more here)를 사용하는 경우

+3

이에 대답하려면 더 많은 정보가 필요합니다 - 텍스트 상자 시스템을 작성하기 위해 어떤 라이브러리를 사용 했습니까? Tkinter에서 이벤트에 대한 콜백을 바인드하고 질문이 가시화 된 시간 델타를 비교합니다. –

+0

나는 당신이 의미하는 바를 실제로 모르겠다. 나는이 분야에서 초보자입니다. 이 프로그램은 자발적으로 자원 봉사를 한 학생이 작성했지만 지금은 더 이상 사용할 수 없으며, 나는 그와 함께 일하려고 노력했습니다. –

답변

3

는 :

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

편집 : 키를 캡처하는 당신은 키 수신기를 결합한다

'입력'의 경우 사용자 프레스 키 리스너 (콜백 함수)를 바인딩 해제 이벤트를 bind 메소드를 사용하고 콜백 함수 내에 로직을 구현합니다.

+0

안녕하세요. Aleyna. ' 가압't ' 측정 시간 : 0.796999931335 가압'E ' 측정 시간 : 1.09400010109 가압'S ' 측정 시간 : 1.21900010109 가압't ' 측정 시간 : 1.46900010109이 그 시험 결과이다 '\ r' 측정 시간 : 5.71900010109 ' . "enter"를 누른 후 어떻게 테스트를 끝내고 '\ r'과 't'사이의 시간을 측정 할 수 있습니까? –

+0

Nico 사용자가 \ r 키를 누르면 타이머를 멈추도록 위의 코드를 업데이트했습니다. \ t와 \ r 사이의 시간을 측정하려면 을 누르면 사용자가 \ t를 눌러 타이머를 시작하고 종료합니다. 시차는 당신이 찾고있는 것입니다 – Aleyna