Cuando se trabaja con GUI, a menudo es una excelente opción para mostrar la cantidad del proceso realizado en forma de una barra de progreso. Dado que el Tkinter es una biblioteca de Python de construcción de GUI, proporciona un método incorporado para construir una barra de progreso fácilmente. Esta guía le mostrará cómo no solo construir una barra de progreso sino también cómo usar dos modos diferentes y cambiar el valor de la barra de progreso.
Cómo construir una barra de progreso en Tkinter Python?
Debe importar el paquete "TTK" y usar su método ProgressBar ().
progvar = ttk.ProgressBar (FrameVar, Oriente, Longitud, Modo)
En la sintaxis del método ProgressBar ():
Construyamos una barra de progreso simple en Tkinter, que progresa en un 10% al presionar un botón utilizando el siguiente código:
#Integre importando las bibliotecas Tkinter
de tkinter import *
de tkinter import ttk
#Después de la importación, cree el marco utilizando el método tk ()
marco = tk ()
marco.Título ("Linuxhint - Barra de progreso")
marco.Geometría ("400x200")
ventana = marco (marco)
#Method para aumentar el valor de progreso
def pbar ():
progbar ['valor']+= 10
#Build ProgressBar
progbar = ttk.ProgressBar (marco, orient = horizontal, longitud = 400, mode = "determinado")
progbar.Paquete (Pady = 40)
#Botón de construcción
btn = botón (marco, text = "Haga clic aquí!", comando = pbar)
btn.Paquete (Pady = 10)
marco.bucle principal()
En este fragmento de código:
Cuando se ejecuta este fragmento de código, produce la siguiente ventana Tkinter en su máquina:
Como puede ver en el GIF de salida, se creó la barra de progreso y siguió progresando al hacer clic en el botón. Sin embargo, una vez que la barra de progreso ha alcanzado la longitud máxima, no se produce más cambios en el botón Presione.
Cómo hacer la barra de progreso ir y venir en Tkinter Python?
Para que la barra de progreso vaya y vaya al presionar el botón, debe usar la barra de progreso "indeterminada". Con una barra de progreso "indeterminada", el objetivo no es mostrar el porcentaje del trabajo realizado por el proceso al usuario. Más bien, el objetivo es solo mostrar que una acción/evento está en proceso.
Para crear una barra de progreso indeterminada, simplemente cambie el argumento de modo en el método ProgressBar () para "indeterminado":
progbar = ttk.ProgressBar (marco, orient = horizontal, longitud = 400, mode = "determinado")
Coloque esta línea en el ejemplo anterior, ejecute el programa y producirá la siguiente ventana Tkinter:
Como puede ver en la salida GIF, la barra de progreso indeterminada no se detuvo en la marca del 100%, sino que comenzó a ir y venir a los clics del botón.
Cómo restablecer la barra de progreso en Tkinter Python?
Para restablecer el valor de la barra de progreso, simplemente use la variable de la barra de progreso para acceder al atributo "valor" y establecer su valor igual a cero. Una buena práctica es restablecer el valor de la barra de progreso en un botón presione.
Para demostrar esto, tome este código modificado del primer ejemplo:
de tkinter import *
de tkinter import ttk
#Después de la importación, cree el marco utilizando el método tk ()
marco = tk ()
marco.Título ("Linuxhint - Barra de progreso")
marco.Geometría ("400x200")
ventana = marco (marco)
#Method para aumentar/restablecer el valor de progreso
def pbar ():
progbar ['valor']+= 10
DEF RESETPBAR ():
progbar ['valor'] = 0
#Build ProgressBar
progbar = ttk.ProgressBar (marco, orient = horizontal, longitud = 400, mode = "indeterminado")
progbar.Paquete (Pady = 40)
#Botones de construcción
btn = botón (frame, text = "progreso", comando = pbar)
btn.Paquete (Pady = 10)
btn2 = botón (frame, text = "reset", comando = resetpbar).Paquete (PADX = 10)
marco.bucle principal()
Cuando se ejecuta este código, produce el siguiente comportamiento de la ventana Tkinter en su máquina:
Puede observar que tan pronto como se presiona el botón "Restablecer", el progreso se restablece a 0.
Conclusión
Las barras de progreso son una excelente manera de informar al usuario final sobre el porcentaje de finalización o el estado de ejecución de una acción. Para construir una barra de progreso en Tkinter, use el método ProgressBar () del paquete "TTK" y pase los valores para el marco, la orientación, la longitud y el modo. Para cambiar el valor de progreso de la barra de progreso, acceder a su "valor" de atributo y cambiar su valor de acuerdo con sus requisitos.