计算2次按钮点击之间的时间间隔(秒)

时间:2014-05-01 23:21:57

标签: python tkinter

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

2 个答案:

答案 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