Create Countdown Timer using Python-Tkinter

20 Jan, 2022
Prerequisites: Python GUI – tkinterPython Tkinter is a GUI programming package or built-in library. Tkinter provides the Tk GUI toolkit with a potent object-oriented interface. Python with Tkinter is the fastest and easiest way to create GUI applications. Creating a GUI using Tkinter is an easy task.Approach  
Importing the module – tkinter, timeCreate the main window (container)Add number of widgets to the main window:Button, EntryApply the event Trigger on the widgets.
Importing the module – tkinter, time
Create the main window (container)
Add number of widgets to the main window:Button, Entry
Apply the event Trigger on the widgets.
Below is the implementation.  
python3
import timefrom tkinter import *from tkinter import messagebox  # creating Tk windowroot = Tk()  # setting geometry of tk windowroot.geometry("300x250")  # Using title() to display a message in# the dialogue box of the message in the# title bar.root.title("Time Counter")  # Declaration of variableshour=StringVar()minute=StringVar()second=StringVar()  # setting the default value as 0hour.set("00")minute.set("00")second.set("00")  # Use of Entry class to take input from the userhourEntry= Entry(root, width=3, font=("Arial",18,""),                 textvariable=hour)hourEntry.place(x=80,y=20)  minuteEntry= Entry(root, width=3, font=("Arial",18,""),                   textvariable=minute)minuteEntry.place(x=130,y=20)  secondEntry= Entry(root, width=3, font=("Arial",18,""),                   textvariable=second)secondEntry.place(x=180,y=20)    def submit():    try:        # the input provided by the user is        # stored in here :temp        temp = int(hour.get())*3600 + int(minute.get())*60 + int(second.get())    except:        print("Please input the right value")    while temp >-1:                 # divmod(firstvalue = temp//60, secondvalue = temp%60)        mins,secs = divmod(temp,60)          # Converting the input entered in mins or secs to hours,        # mins ,secs(input = 110 min --> 120*60 = 6600 => 1hr :        # 50min: 0sec)        hours=0        if mins >60:                         # divmod(firstvalue = temp//60, secondvalue            # = temp%60)            hours, mins = divmod(mins, 60)                 # using format () method to store the value up to        # two decimal places        hour.set("{0:2d}".format(hours))        minute.set("{0:2d}".format(mins))        second.set("{0:2d}".format(secs))          # updating the GUI window after decrementing the        # temp value every time        root.update()        time.sleep(1)          # when temp value = 0; then a messagebox pop's up        # with a message:"Time's up"        if (temp == 0):            messagebox.showinfo("Time Countdown", "Time's up ")                 # after every one sec the value of temp will be decremented        # by one        temp -= 1 # button widgetbtn = Button(root, text='Set Time Countdown', bd='5',             command= submit)btn.place(x = 70,y = 120)  # infinite loop which is required to# run tkinter program infinitely# until an interrupt occursroot.mainloop()
Output: 
 
tuqajazara
sumitgumber28
Python Tkinter-exercises
Python-tkinter
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.