Home » Creating a Digital Clock in Python Using Tkinter

Creating a Digital Clock in Python Using Tkinter

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

In this tutorial, we will create a digital clock using Python's Tkinter library.

Tkinter is a standard Python library used to create graphical user interfaces (GUIs), and it provides a simple and intuitive way to build GUI applications.

We will use the Label widget from Tkinter to display the current time, which will be updated every second using the after() method.

Key Concepts:

  • Tkinter Label widget: Used to display text or images.
  • time module: Used to get the current time.
  • after() method: Tkinter's method to repeatedly execute a function at regular intervals (in this case, updating the time every second).

Let’s build a digital clock.

Step 1: Import Required Modules

First, we need to import the necessary libraries:

  • tkinter: For creating the GUI.
  • time: For fetching the current time in hours, minutes, and seconds.
import tkinter as tk
import time

Step 2: Create the Tkinter Window

Next, we create the main window for the clock using Tk(). We will also customize the window's size, title, and background color.

# Create the main window
root = tk.Tk()
root.title("Digital Clock")
root.geometry("400x200")  # Set the window size
root.configure(bg="black")  # Set background color

Step 3: Add the Time Display Label

We will use the Label widget to display the time in the window. The label will be placed in the center of the window with customized font size, color, and background.

# Create a Label widget to display the time
time_label = tk.Label(root, font=("Arial", 48), bg="black", fg="cyan")
time_label.pack(anchor="center", pady=40)  # Position the label in the window
  • font: Sets the font style and size.
  • bg: Sets the background color of the label.
  • fg: Sets the text color (foreground).
  • pady: Adds vertical padding.

Step 4: Create a Function to Update the Time

Now, we create a function called update_time() to fetch the current time and update the label every second. We will use the time.strftime() method to format the time as hours, minutes, and seconds.

def update_time():
    current_time = time.strftime("%H:%M:%S")  # Get current time in HH:MM:SS format
    time_label.config(text=current_time)  # Update the label with the current time
    time_label.after(1000, update_time)  # Call this function again after 1 second (1000 ms)
  • time.strftime(): Returns a formatted string representing the current time.
  • time_label.config(): Updates the text of the label with the current time.
  • time_label.after(1000, update_time): This schedules the update_time function to be called again after 1000 milliseconds (1 second), creating a loop that updates the time every second.

Step 5: Start the Time Update and Main Event Loop

To display the time and start the clock, we need to call the update_time() function and run the Tkinter event loop with root.mainloop().

# Start the time update function
update_time()

# Run the Tkinter main loop
root.mainloop()
  • root.mainloop(): Starts the Tkinter event loop, keeping the window open and responsive.

Complete Code

Here is the complete Python code for creating a digital clock using Tkinter:

import tkinter as tk
import time

# Create the main window
root = tk.Tk()
root.title("Digital Clock")
root.geometry("400x200")  # Set the window size
root.configure(bg="black")  # Set background color

# Create a Label widget to display the time
time_label = tk.Label(root, font=("Arial", 48), bg="black", fg="cyan")
time_label.pack(anchor="center", pady=40)  # Position the label in the window

# Function to update the time every second
def update_time():
    current_time = time.strftime("%H:%M:%S")  # Get current time in HH:MM:SS format
    time_label.config(text=current_time)  # Update the label with the current time
    time_label.after(1000, update_time)  # Call this function again after 1 second (1000 ms)

# Start the time update function
update_time()

# Run the Tkinter main loop
root.mainloop()

Explanation:

  1. Tkinter window (root): This is the main window of the application, where the digital clock will be displayed.
  2. Label widget (time_label): This displays the current time and is updated every second.
  3. update_time() function: This function fetches the current time and updates the label. The after() method is used to continuously call this function every 1 second.
  4. Main event loop (root.mainloop()): Keeps the window open and listens for events like time updates.

Summary:

In this tutorial, we created a digital clock using the Tkinter library.

We used:

  • The Label widget to display the time.
  • The time.strftime() function to format the time.
  • The after() method to update the time every second.

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