Saltar al contenido

Actualizar etiqueta Tkinter desde variable

Solución:

La ventana solo se muestra una vez que se ingresa al bucle principal. Por lo tanto, no verá ningún cambio que realice en su while True bloque que precede a la línea root.mainloop().


Las interfaces GUI funcionan reaccionando a los eventos mientras están en el bucle principal. Aquí hay un ejemplo en el que StringVar también está conectado a un widget de entrada. Cuando cambia el texto en el widget de Entrada, cambia automáticamente en la Etiqueta.

from tkinter import *

root = Tk()
var = StringVar()
var.set('hello')

l = Label(root, textvariable = var)
l.pack()

t = Entry(root, textvariable = var)
t.pack()

root.mainloop() # the window is now displayed

Me gusta la siguiente referencia: referencia de tkinter 8.5: una GUI para Python


A continuación, se muestra un ejemplo práctico de lo que intentaba hacer:

from tkinter import *
from time import sleep

root = Tk()
var = StringVar()
var.set('hello')

l = Label(root, textvariable = var)
l.pack()

for i in range(6):
    sleep(1) # Need this to slow the changes down
    var.set('goodbye' if i%2 else 'hello')
    root.update_idletasks()

root.update Ingrese al bucle de eventos hasta que todos los eventos pendientes hayan sido procesados ​​por Tcl.

Tal vez no entiendo la pregunta, pero aquí está mi solución simple que funciona:

# I want to Display total heads bent this machine so I define a label -
TotalHeadsLabel3 = Label(leftFrame)
TotalHeadsLabel3.config(font=Helv12,fg='blue',text="Total heads " + str(TotalHeads))
TotalHeadsLabel3.pack(side=TOP)

# I update the int variable adding the quantity bent -
TotalHeads = TotalHeads + headQtyBent # update ready to write to file & display
TotalHeadsLabel3.config(text="Total Heads "+str(TotalHeads)) # update label with new qty

Acepto que las etiquetas no se actualizan automáticamente, pero se pueden actualizar fácilmente con la

<label name>.config(text="<new text>" + str(<variable name>))

Eso solo debe incluirse en su código después de que se actualice la variable.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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