使用 python 创建秒表

pythonserver side programmingprogramming

秒表用于测量两个事件之间的时间间隔,通常以秒到分钟为单位。它有多种用途,例如在体育运动中或在工业装置中测量热量、电流等的流动。可以使用 Python 的 tkinter 库创建秒表。

此库将具有 GUI 功能,可创建显示  Start、StopReset  选项的秒表。该程序的关键组件是使用 tkinter 的 lable.after()  模块。

label.after(parent, ms, function = None)
其中
parent:使用此函数的小部件的对象。
ms:以毫秒为单位的时间。
函数:回调函数

在下面的程序中,我们使用此方法作为程序的关键组件,并设计一个显示秒表中的 GUI 功能的小部件。

示例

import tkinter as tink
count = -1
run = False
def var_name(mark):
   def value():
      if run:
         global count
         # Just beore starting
         if count == -1:
            show = "Starting"
         else:
            show = str(count)
         mark['text'] = show
         #Increment the count after
         #every 1 second
         mark.after(1000, value)
         count += 1
   value()
# While Running
def Start(mark):
   global run
   run = True
   var_name(mark)
   start['state'] = 'disabled'
   stop['state'] = 'normal'
   reset['state'] = 'normal'
# While stopped
def Stop():
   global run
   start['state'] = 'normal'
   stop['state'] = 'disabled'
   reset['state'] = 'normal'
   run = False
# For Reset
def Reset(label):
   global count
   count = -1
   if run == False:
      reset['state'] = 'disabled'
      mark['text'] = 'Welcome'
   else:
      mark['text'] = 'Start'

base = tink.Tk()
base.title("PYTHON STOPWATCH")
base.minsize(width=300, height=200)
mark = tink.Label(base, text="Welcome", fg="blue", font="Times 25 bold",bg="white")
mark.pack()
start = tink.Button(base, text='Start',width=25, command=lambda: Start(mark))
stop = tink.Button(base, text='Stop', width=25, state='disabled', command=Stop)
reset = tink.Button(base, text='Reset',width=25, state='disabled', command=lambda: Reset(mark))
start.pack()
stop.pack()
reset.pack()
base.mainloop()

下图显示了秒表运行时的三种不同场景。

启动 Stopwtach

正在运行的 Stopwtach

停止 Stopwtach

重置 Stopwtach


相关文章