Cómo usar Thread en Tkinter Python

Requisito previo: 

Python ofrece múltiples opciones para desarrollar GUI (interfaz gráfica de usuario). De todos los métodos GUI, tkinter es el método más utilizado. Es una interfaz estándar de Python para el kit de herramientas Tk GUI que se envía con Python. Python con tkinter es la forma más rápida y sencilla de crear aplicaciones GUI. Crear una GUI usando tkinter es una tarea fácil.

Al crear una GUI, será necesario realizar múltiples trabajos/operaciones en el backend. Supongamos que queremos realizar 4 operaciones simultáneamente. El problema aquí es que cada operación se ejecuta una por una. Durante la ejecución de una operación, la ventana de la GUI tampoco se moverá y es por eso que necesitamos subprocesos. Ambas implementaciones se dan a continuación, lo que obviamente ayudará a comprender mejor sus diferencias.

sin roscar

Trabajar sin hilos, hace que el proceso se retrase. Además, la ventana no se moverá hasta que se lleve a cabo la ejecución completa.

Acercarse

  • Crear ventana normal de Tkinter
  • Agregar botón con comando 
  • Ejecutar Tkinter

Programa:

Python3

# Import Module
from tkinter import *
import time
from threading import *
  
# Create Object
root = Tk()
  
# Set geometry
root.geometry("400x400")
  
  
def work():
  
    print("sleep time start")
  
    for i in range(10):
        print(i)
        time.sleep(1)
  
    print("sleep time stop")
  
  
# Create Button
Button(root, text="Click Me", command=work).pack()
  
# Execute Tkinter
root.mainloop()

Producción:

Con Roscado

Acercarse

  • Crear ventana normal de Tkinter
  • Agregar botón con comando para enhebrar 
  • Ejecutar Tkinter

Programa:

Python3

# Import Module
from tkinter import *
import time
from threading import *
  
# Create Object
root = Tk()
  
# Set geometry
root.geometry("400x400")
  
# use threading
  
def threading():
    # Call work function
    t1=Thread(target=work)
    t1.start()
  
# work function
def work():
  
    print("sleep time start")
  
    for i in range(10):
        print(i)
        time.sleep(1)
  
    print("sleep time stop")
  
# Create Button
Button(root,text="Click Me",command = threading).pack()
  
# Execute Tkinter
root.mainloop()

Producción:

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *