As we know Tkinter is used to create a variety of GUI (Graphical User Interface) applications. In this article we will learn how to create a Digital clock using Tkinter.
Prerequisites:
- Python functions
- Tkinter basics (Label Widget)
- Time module
Using Label widget from Tkinter and time module:
In the following application, we are going to use Label widget and also going to use time module which we will use to retrieve system’s time.
Below is the implementation:
Python3
# importing whole module from tkinter import * from tkinter.ttk import * # importing strftime function to # retrieve system's time from time import strftime # creating tkinter window root = Tk() root.title( 'Clock' ) # This function is used to # display time on the label def time(): string = strftime( '%H:%M:%S %p' ) lbl.config(text = string) lbl.after( 1000 , time) # Styling the label widget so that clock # will look more attractive lbl = Label(root, font = ( 'calibri' , 40 , 'bold' ), background = 'purple' , foreground = 'white' ) # Placing clock at the centre # of the tkinter window lbl.pack(anchor = 'center' ) time() mainloop() |
Output:
Code Explanation:
- The code starts by importing the necessary modules.
- The first module is the tkinter library, which provides basic functionality for creating graphical user interfaces (GUIs).
- Next, the strftime function is imported to retrieve system time.
- Next, a window is created and given a title of “Clock.”
- A function called time() is then created to display the current time on the label widget.
- This function uses the strftime() function to format the time string according to system conventions.
- The last part of this code sets up styling for the label widget so that it will look nicer.
- Finally, an instance of Label is created and placed at the center of the window.
- The time() function is executed, and your output should look like this: Clock: Tue Dec 12 08:00:00 2016
- The code creates a window and assigns it the title “Clock”.
- The time() function is then called to display the current time on the label widget.
- The lbl.config() function is used to set the text of the label widget.
- The after() function is used to delay displaying the time for 1000 milliseconds.
- Finally, the style of the label widget is modified with lbl.pack().