Comment modifier le texte de l'étiquette Tkinter
-
Utilisez
StringVar
pour changer le texte de l’étiquette Tkinter -
Propriété Label
text
pour changer le texte du label
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()
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()
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