用 Python 建立秒錶


秒錶用於測量兩個事件之間的時間間隔,通常以秒到分鐘為單位。它在體育或測量工業環境中熱流、電流等方面有著廣泛的用途。Python 可透過使用其 Tkinter 庫來建立秒錶。

此庫將具有 GUI 功能,以建立顯示 啟動、停止重置 選項的秒錶。該程式的關鍵元件是使用 Tkinter 的lable.after() 模組。

label.after(parent, ms, function = None)
where
parent: The object of the widget which is using this function.
ms: Time in miliseconds.
function: Call back function

在以下程式中,我們使用此方法作為程式的關鍵元件,並設計了一個在秒錶中顯示 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()

以下影像顯示了執行秒錶時的三種不同場景。

啟動秒錶

執行的秒錶

停止秒錶

重置秒錶

更新於: 19-12-2019

1K+ 次訪問

開啟你的 職業

透過完成課程獲得認證

開始
廣告