Created
January 16, 2022 07:25
-
-
Save harendra21/30383d5d8d888a7700d3efb3aaed6243 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import tkinter as Tkinter | |
from datetime import datetime | |
counter = 0 | |
running = False | |
def counter_label(label): | |
def count(): | |
if running: | |
global counter | |
# To manage the intial delay. | |
if counter == 0: | |
display = 'Ready!' | |
else: | |
tt = datetime.utcfromtimestamp(counter) | |
string = tt.strftime('%H:%M:%S') | |
display = string | |
label['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 = 0 | |
# If reset is pressed after pressing stop. | |
if not running: | |
reset['state'] = 'disabled' | |
label['text'] = '00:00:00' | |
# If reset is pressed while the stopwatch is running. | |
else: | |
label['text'] = '00:00:00' | |
root = Tkinter.Tk() | |
root.title("Stopwatch") | |
# Fixing the window size. | |
root.minsize(width=250, height=70) | |
label = Tkinter.Label(root, text='Ready!', 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() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment