Aggiorna il testo del pulsante Tkinter

  1. Usa StringVar per modificare il testo del pulsante Tkinter
  2. Tkinter Button text Proprietà per modificare il testo del pulsante

In questo tutorial, introdurremo come modificare il testo Tkinter button. È simile ai metodi per cambiare il testo dell’etichetta di Tkinter,

  • Metodo StringVar
  • Metodo proprietà text del pulsante

Usa StringVar per modificare il testo del pulsante Tkinter

StringVar è un tipo di costruttore Tkinter per creare la variabile stringa Tkinter.

Dopo aver associato la variabile StringVar al widget Button di Tkinter, Tkinter aggiornerà il testo di questo Button quando la variabile viene modificata.

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

Tkinter imposta il testo del pulsante

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

Il costruttore di Tkinter non ha potuto avviare la variabile stringa con la stringa come self.text = tk.StringVar("Text").

Dovremmo chiamare il metodo set per impostare il valore StringVar, come self.text.set("Original Text").

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

La variabile StringVar self.text è assegnata all’opzione textvariable di self.buttonA. Tkinter aggiornerà automaticamente il testo di self.buttonA se self.text viene modificato.

Tkinter Button text Proprietà per modificare il testo del pulsante

Un’altra soluzione per cambiare il testo del pulsante Tkinter è cambiare la proprietà text del pulsante.

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

text è una chiave dell’oggetto Button il cui testo potrebbe essere iniziato con text="Original Text" e potrebbe anche essere aggiornato assegnando il nuovo valore a text.

Il metodo tk.Button.configure() potrebbe anche cambiare la proprietà text per cambiare il testo di Tkinter Button, come mostrato di seguito.

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

Articolo correlato - Tkinter Button

  • Come chiudere una finestra Tkinter con un pulsante