Home » Create a Countdown Timer using Tkinter

Create a Countdown Timer using Tkinter

Java SE 11 Programmer II [1Z0-816] Practice Tests
1 Year Subscription
Spring Framework Basics Video Course
Java SE 11 Programmer I [1Z0-815] Practice Tests
Java SE 11 Developer (Upgrade) [1Z0-817]
Oracle Java Certification

In this article we will give you the code to create a simple countdown timer using Tkinter

Table of Contents

Code

The concept is straightforward

  • Import libraries
  • Create a window of a certain size and draw the controls
  • Take user input and press a button
  • Countdown the timer and then display a message to the user
import time
from tkinter import *
from tkinter import messagebox
 
 
# creating Tk window
root = Tk()
  
# size of window
root.geometry("250x100")

root.title("Countdown")
  
hour=StringVar()
minute=StringVar()
second=StringVar()
  
# setting the defaults to 0
hour.set("00")
minute.set("00")
second.set("00")
  
# take input from the user
hourEntry= Entry(root, width=3, font=("Arial",18,""), textvariable=hour)
hourEntry.place(x=60,y=20)
minuteEntry= Entry(root, width=3, font=("Arial",18,""), textvariable=minute)
minuteEntry.place(x=110,y=20)
secondEntry= Entry(root, width=3, font=("Arial",18,""), textvariable=second)
secondEntry.place(x=160,y=20)
  
  
def submit():
    try:
        # the input provided by the user is stored in temp
        temp = int(hour.get())*3600 + int(minute.get())*60 + int(second.get())
    except:
        print("Please input the right value")
    while temp >-1:
        mins,secs = divmod(temp,60)
  
        hours=0
        if mins >60:         
            hours, mins = divmod(mins, 60)
         
        hour.set("{0:2d}".format(hours))
        minute.set("{0:2d}".format(mins))
        second.set("{0:2d}".format(secs))
  
        # updating the GUI window
        root.update()
        time.sleep(1)
  
        # when temp value = 0; then a pop up appears
        if (temp == 0):
            messagebox.showinfo("Countdown", "Time's up ")
         
        # after every second the value of is decremented
        temp -= 1
 
# button widget
btn = Button(root, text='Set Countdown timer', bd='5',
             command= submit)
btn.place(x = 70,y = 60)
  
root.mainloop()

 

Links

https://github.com/programmershelp/maxpython/blob/main/tkinter/tkintercountdown.py

You may also like

Leave a Comment

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More