Create Countdown Timer using Python-Tkinter
Prerequisistes: Python GUI – tkinter
Python 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, 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 time from tkinter import * from tkinter import messagebox # creating Tk window root = Tk() # setting geometry of tk window root.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 variables hour = StringVar() minute = StringVar() second = StringVar() # setting the default value as 0 hour. set ( "00" ) minute. set ( "00" ) second. set ( "00" ) # Use of Entry class to take input from the user hourEntry = 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 widget btn = 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 occurs root.mainloop() |
Output:
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.