计算两个按钮点击之间的时间间隔(秒)

1 投票
2 回答
1725 浏览
提问于 2025-04-18 05:03

我有一个用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

撰写回答