Comment modifier le texte de l'étiquette Tkinter

Jinku Hu 30 janvier 2023
  1. Utilisez StringVar pour changer le texte de l’étiquette Tkinter
  2. Propriété Label text pour changer le texte du label
Comment modifier le texte de l'étiquette Tkinter

Dans ce tutoriel, nous allons introduire la façon de changer le texte de l’étiquette de Tkinter en cliquant sur un bouton.

Utilisez StringVar pour changer le texte de l’étiquette Tkinter

StringVar est un type de constructeur Tkinter pour créer la variable chaîne Tkinter.

Après avoir associé la variable StringVar aux widgets Tkinter, Tkinter mettra à jour ce widget particulier lorsque la variable sera modifiée.

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

Le constructeur de Tkinter ne pourrait pas initier la variable chaîne de caractères avec la chaîne comme self.text = tk.StringVar().

Nous devrions appeler la méthode set pour définir la valeur de StringVar, comme self.text.set("Test").

self.label = tk.Label(self.root, textvariable=self.text)

Elle associe la variable StringVar self.text au widget self.label en fixant la variable textvariable à self.text. La boîte à outils Tk commence à suivre les changements de self.text et mettra à jour le texte self.label si self.text est modifié.

Propriété Label text pour changer le texte du label

Une autre solution pour changer le texte de l’étiquette de Tkinter est de changer la propriété text de l’étiquette.

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

Le texte de l’étiquette peut être initialisé avec text="Text" et peut aussi être mis à jour en assignant la nouvelle valeur à la clé text de l’objet étiquette.

Nous pourrions aussi changer la propriété text par la méthode tk.Label.configure() comme montré ci-dessous. Cela fonctionne de la même manière avec les codes ci-dessus.

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

Article connexe - Tkinter Label