python小技巧:[GUI项目]:Tkinter 创建秒表

440 阅读2分钟

在python中使用Tkinter创建秒表,Tkinter是Python的标准GUI库。

Python与Tkinter相结合,提供了一种创建GUI应用程序的快速、简便的方法。

Tkinter为TKGUI工具包提供了一个强大的面向对象的界面。很容易开始使用Tkinter。

# Python program to create a
# a new window using Tkinter
# importing the required libraires
import tkinter
  
# creating a object 'top' as instance of class Tk
top = tkinter.Tk()
  
# This will start the blank window
top.mainloop()

产出:

使用Tkinter创建秒表程序:

秒表是一种手持式计时器,用来测量从被激活的某一特定时间到该手表被停用的时间所经过的时间。一种用于远处观看的大型数字秒表,如在运动场中,称为停车钟。

在手动计时中,时钟由一个按下按钮的人启动并停止。在全自动时间内,启动和停止都是由传感器自动触发的。

**所需模块:**Tkinter

源代码:

# Python program to illustrate a stop watch 
# using Tkinter 
#importing the required libraries 
import tkinter as Tkinter 
from datetime import datetime
counter = 66600
running = False
def counter_label(label): 
    def count(): 
        if running: 
            global counter 
    
            # To manage the intial delay. 
            if counter==66600:             
                display="Starting..."
            else:
                tt = datetime.fromtimestamp(counter)
                string = tt.strftime("%H:%M:%S")
                display=string 
    
            label['text']=display   # Or label.config(text=display) 
    
            # label.after(arg1, arg2) delays by  
            # first argument given in milliseconds 
            # and then calls the function given as second argument. 
            # Generally like here we need to call the  
            # function in which it is present repeatedly. 
            # Delays by 1000ms=1 seconds and call count again. 
            label.after(1000, count)  
            counter += 1
    
    # Triggering the start of the counter. 
    count()      
    
# start function of the stopwatch 
def Start(label): 
    global running 
    running=True
    counter_label(label) 
    start['state']='disabled'
    stop['state']='normal'
    reset['state']='normal'
    
# Stop function of the stopwatch 
def Stop(): 
    global running 
    start['state']='normal'
    stop['state']='disabled'
    reset['state']='normal'
    running = False
    
# Reset function of the stopwatch 
def Reset(label): 
    global counter 
    counter=66600
    
    # If rest is pressed after pressing stop. 
    if running==False:       
        reset['state']='disabled'
        label['text']='Welcome!'
    
    # If reset is pressed while the stopwatch is running. 
    else:                
        label['text']='Starting...'
    
root = Tkinter.Tk() 
root.title("Stopwatch") 
    
# Fixing the window size. 
root.minsize(width=250, height=70) 
label = Tkinter.Label(root, text="Welcome!", fg="black", font="Verdana 30 bold") 
label.pack() 
f = Tkinter.Frame(root)
start = Tkinter.Button(f, text='Start', width=6, command=lambda:Start(label)) 
stop = Tkinter.Button(f, text='Stop',width=6,state='disabled', command=Stop) 
reset = Tkinter.Button(f, text='Reset',width=6, state='disabled', command=lambda:Reset(label)) 
f.pack(anchor = 'center',pady=5)
start.pack(side="left") 
stop.pack(side ="left") 
reset.pack(side="left") 
root.mainloop()

产出: