Como mudar o texto da etiqueta do Tkinter
-
Use
StringVar
para alterar o texto da etiqueta do Tkinter -
Propriedade
text
para alterar o texto da etiqueta
Neste tutorial, vamos introduzir como alterar o texto da etiqueta do Tkinter clicando num botão.
Use StringVar
para alterar o texto da etiqueta do Tkinter
StringVar
é um tipo de construtor de Tkinter para criar a variável string Tkinter.
Após associarmos a variável StringVar
às widgets do Tkinter, Tkinter irá atualizar esta widget em particular quando a variável for modificada.
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.text = tk.StringVar()
self.text.set("Test")
self.label = tk.Label(self.root, textvariable=self.text)
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.text.set("Text updated")
app = Test()
self.text = tk.StringVar()
self.text.set("Test")
O construtor do Tkinter não poderia iniciar a variável string com a string como self.text = tk.StringVar()
.
Devemos chamar o método set
para definir o valor StringVar
, como self.text.set("Test")
.
self.label = tk.Label(self.root, textvariable=self.text)
Ele associa a variável StringVar
self.text
ao widget da etiqueta self.label
, definindo textvariable
para ser self.text
. O toolkit Tk começa a rastrear as mudanças do self.text
e atualizará o texto self.label
se o self.text
for modificado.
Propriedade text
para alterar o texto da etiqueta
Outra solução para alterar o texto da etiqueta Tkinter é alterar a propriedade text
da etiqueta.
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, text="Text")
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.label["text"] = "Text updated"
app = Test()
O texto da etiqueta poderia ser iniciado com text="Text"
e também poderia ser atualizado atribuindo o novo valor à chave text
do objeto da etiqueta.
Poderíamos também alterar a propriedade text
por tk.Label.configure()
método como mostrado abaixo. Ele funciona da mesma forma com os códigos acima.
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, text="Text")
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.label.configure(text="Text Updated")
app = Test()
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook