Comment mettre à jour le texte du bouton Tkinter

Jinku Hu 30 janvier 2023
  1. Utilisez StringVar pour modifier le texte du bouton Tkinter
  2. Propriété text de Tkinter Button pour modifier le texte du bouton
Comment mettre à jour le texte du bouton Tkinter

Dans ce tutoriel, nous allons introduire la façon de modifier le texte du bouton Tkinter. Il est similaire à la méthode changer le texte du label Tkinter,

  • Méthode StringVar
  • Bouton text Méthode de propriété

Utilisez StringVar pour modifier le texte du bouton Tkinter

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

Après avoir associé la variable StringVar au widget Button de Tkinter, Tkinter mettra à jour le texte de ce Button lorsque la variable sera modifiée.

import tkinter as tk


class Test:
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("250x100")
        self.text = tk.StringVar()
        self.text.set("Original Text")
        self.buttonA = tk.Button(self.root, textvariable=self.text)

        self.buttonB = tk.Button(
            self.root, text="Click to change text", command=self.changeText
        )
        self.buttonA.pack(side=tk.LEFT)
        self.buttonB.pack(side=tk.RIGHT)
        self.root.mainloop()

    def changeText(self):
        self.text.set("Updated Text")


app = Test()

Texte du bouton de Tkinter

self.text = tk.StringVar()
self.text.set("Original Text")

Le constructeur de Tkinter ne pouvait pas initier la variable chaîne avec la chaîne comme self.text = tk.StringVar("Text").

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

self.buttonA = tk.Button(self.root, textvariable=self.text)

La variable StringVar self.text est assignée à l’option textvariable de self.buttonA. Tkinter mettra à jour le texte de self.buttonA automatiquement si self.text est modifié.

Propriété text de Tkinter Button pour modifier le texte du bouton

Une autre solution pour modifier le texte du bouton Tkinter est de changer la propriété text du bouton.

import tkinter as tk


class Test:
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("250x100")

        self.buttonA = tk.Button(self.root, text="Original Text")

        self.buttonB = tk.Button(
            self.root, text="Click to change text", command=self.changeText
        )
        self.buttonA.pack(side=tk.LEFT)
        self.buttonB.pack(side=tk.RIGHT)
        self.root.mainloop()

    def changeText(self):
        self.buttonA["text"] = "Updated Text"


app = Test()

Le text est une clé de l’objet Button dont le texte peut être initié avec text="Original Text" et peut également être mis à jour en attribuant la nouvelle valeur à text.

La méthode tk.Button.configure() pourrait aussi changer la propriété text pour modifier le texte de Tkinter Button, comme indiqué ci-dessous.

import tkinter as tk


class Test:
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("250x100")

        self.buttonA = tk.Button(self.root, text="Original Text")

        self.buttonB = tk.Button(
            self.root, text="Click to change text", command=self.changeText
        )
        self.buttonA.pack(side=tk.LEFT)
        self.buttonB.pack(side=tk.RIGHT)
        self.root.mainloop()

    def changeText(self):
        self.buttonA.configure(text="Updated Text")


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 Button