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: