计算两个按钮点击之间的时间间隔(秒)
我有一个用Python写的程序,它有一个简单的图形界面,可以模拟排队管理系统。当我按下“下一个顾客”这个按钮时,它会显示下一个排队号码。现在我想计算两次点击(在“下一个顾客”按钮上)之间的时间间隔,以便跟踪所需的服务时间。这怎么实现呢?以下是代码。
import time
import random
from Tkinter import *
def PrintNumber():
global j, label
j+=1
label.config(text=str(j))
print j
t = (time.strftime("%H:%M:%S"))
d = time.strftime("%d/%m/%Y")
return
j=0
mgui=Tk()
mgui.geometry('200x200')
mgui.title('Queue System')
st = Button(mgui, text="Next Customer", command = PrintNumber)
st.pack()
label = Label(mgui, text=str(j))
label.pack()
mgui.mainloop()
2 个回答
0
你可以在第一次按下按钮后开始计时,然后在第二次按下按钮时结束计时。你还可以加一个条件来判断这是不是第一次按下。
if start:
elapsed = (time.clock() - start)
print (elapsed)
start = time.clock()
0
这是我比较懒的解决方案:
import time
import random
from Tkinter import *
class GetClicktime():
def __init__(self):
self.j=0
self.t=[]
self.mgui=Tk()
self.mgui.geometry('200x200')
self.mgui.title('Queue System')
self.st = Button(self.mgui, text="Next Customer", command = self.PrintNumber)
self.st.pack()
#self.st.bind('<Button-1>',callback)
self.label = Label(self.mgui, text=str(self.j))
self.label.pack()
self.mgui.mainloop()
def PrintNumber(self):
self.j+=1
self.label.config(text=str(self.j))
print self.j
t = (time.strftime("%H:%M:%S"))
d = time.strftime("%d/%m/%Y")
self.t.append(int(t.replace(':','')))
print self.t
if self.j >2:
print 'the time between clicks is:',self.t[self.j-1]-self.t[self.j-2],'seconds'
print t,d
return
if __name__ == "__main__":
GetClicktime()
你可以不写一个类,但这个方法能满足你的需求。
如果你需要关于类的文档,我推荐你看看这个视频: https://www.youtube.com/watch?v=trOZBgZ8F_c#start=0:00;end=13:27;cycles=-1;autoreplay=false;showoptions=false