我在Python中有一个带有简单GUI的程序,它可以模拟队列管理系统。当我按下按钮"下一个客户"它显示下一个队列号。现在我想计算2次点击之间的时间间隔(按钮"下一个客户"),以便跟踪所需的服务时间。这怎么可能?代码如下。
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()
答案 0 :(得分:0)
您可以在按下第一个按钮后开始计时器,并在按下第二个按钮后结束计时器。您可以添加一个条件来确定天气是第一次按下。
if start:
elapsed = (time.clock() - start)
print (elapsed)
start = time.clock()
答案 1 :(得分: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