Como mudar o texto da etiqueta do Tkinter

Jinku Hu 7 março 2021
  1. Use StringVar para alterar o texto da etiqueta do Tkinter
  2. Propriedade text para alterar o texto da etiqueta
Como mudar o texto da etiqueta do Tkinter

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()

Tkinter set Label text

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()
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Artigo relacionado - Tkinter Label