Horje
Run Code Alongside Python Tkinter'S Event Loop

Running code alongside Tkinter’s event loop consists of integrating background tasks with Tkinter’s main loop without freezing the user interface. This is essential for creating responsive applications that perform tasks such as updating the UI, handling network requests, or running computations concurrently. In this article, we will explore two different approaches to running code alongside Tkinter’s event loop.

Run Code Alongside Tkinter’s Event Loop

Below are the possible approaches to running code alongside Tkinter’s event loop.

  • Using the After Method
  • Using the threading Module

Run Code Alongside Tkinter’s Event Loop Using the After Method

In this example, we are using the after method in Tkinter to schedule the update_label function to run every 1000 milliseconds (1 second). This function updates a label with a counter value and prints the value to the console, incrementing the counter each time until it reaches 10.

Python
import tkinter as tk

root = tk.Tk()
root.geometry("300x200")

label = tk.Label(root, text="", font=("Helvetica", 14))
label.pack(pady=20)

counter = 1

def update_label():
    global counter
    if counter <= 10:
        print(counter)
        label.config(text=str(counter))
        counter += 1
        root.after(1000, update_label)  

root.after(1000, update_label) 

root.mainloop()

Output:

1

Run Code Alongside Tkinter’S Event Loop Using the Threading Module

In this example, we are using the threading module to run the run_in_thread function in a separate thread. This function updates a label with different combinations of “GeeksforGeeks” and prints them to the console every second, allowing the Tkinter event loop to run concurrently without blocking.

Python
import tkinter as tk
import threading
import time

root = tk.Tk()
root.geometry("300x200")

label = tk.Label(root, text="", font=("Helvetica", 14))
label.pack(pady=20)

combinations = [
    "GeeksforGeeks",
    "Geeksfor",
    "Geeks",
    "forGeeks",
    "GfG",
    "GeeksforGeeks Rocks",
    "Learn at GeeksforGeeks",
    "GeeksforGeeks Python",
    "GeeksforGeeks Algorithms",
    "GeeksforGeeks Data Structures"
]
combination_index = 0

def run_in_thread():
    global combination_index
    while combination_index < len(combinations):
        print(combinations[combination_index])
        root.after(0, lambda: label.config(text=combinations[combination_index]))
        combination_index += 1
        time.sleep(1)

thread = threading.Thread(target=run_in_thread, daemon=True)
thread.start()

root.mainloop()

Output:

2(2)





Reffered: https://www.geeksforgeeks.org


Python

Related
Ceil in a Binary Search Tree Python Ceil in a Binary Search Tree Python
Replace Commas with New Lines in a Text File Using Python Replace Commas with New Lines in a Text File Using Python
Alphabet range in Python Alphabet range in Python
Python Program to Find Armstrong Number in an Interval Python Program to Find Armstrong Number in an Interval
Python Program for Reverse of a Number Using Type Casting Python Program for Reverse of a Number Using Type Casting

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
17