Tkinter Tutorial - Pulsante

Jinku Hu 3 gennaio 2023 15 febbraio 2020
  1. Opzione default del pulsante Tkinter
  2. Tkinter Comando del pulsante Callback
Tkinter Tutorial - Pulsante

Il widget del pulsante Tkinter è abbastanza simile al widget Tkinter Label. Ha quasi le stesse opzioni di quelle dell’etichetta, tranne che ha un’opzione extra default. Daremo i dettagli di questo default dopo un esempio di pulsante di base.

Si possono generare due pulsanti più semplici usando i codici demo qui sotto.

from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()

La finestra con due pulsanti adiacenti mostra dopo aver eseguito i codici.

Tkinter Tutorial_Etichetta di base

Opzione default del pulsante Tkinter

L’opzione default in button dice che il pulsante è il pulsante predefinito nella GUI, per esempio, quello che viene invocato automaticamente quando l’utente preme il tasto Enter o Return.

Tkinter Comando del pulsante Callback

L’opzione command richiama la funzione di richiamo quando si preme il pulsante.

role=“alert”>Lo stato del pulsante dovrebbe essere attivo quando la sua opzione di comando è abilitata, altrimenti non viene invocato alcun richiamo.

from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    

    
app = tk.Tk()
labelExample = tk.Button(app, text="0")

def change_label_number():
    counter = int(str(labelExample['text']))
    counter += 1
    labelExample.config(text=str(counter))
    
buttonExample = tk.Button(app, text="Increase", width=30,
                          command=change_label_number)

buttonExample.pack()
labelExample.pack()
app.mainloop()

Crea un pulsante e un widget per le etichette nella finestra principale. Il numero nel testo dell’etichetta viene aumentato di 1 ogni volta che si fa clic sul pulsante.

Tkinter Tutorial_Button Command Callback

def change_label_number():
    counter = int(str(labelExample['text']))
    counter += 1
    labelExample.config(text=str(counter))

Il change_label_number è la funzione invocata quando si fa clic sul pulsante. Esso ottiene il numero di etichetta e poi imposta l’etichetta aumentata di uno.

buttonExample = tk.Button(app, text="Increase", width=30,
                          command=change_label_number)

Costruisce il legame tra il pulsante e la sua funzione di richiamo.

Tkinter Button Command Callback Funzione di richiamo del pulsante con argomenti

Avete bisogno di un oggetto partial di functools se avete bisogno di passare argomenti alle funzioni di callback. Gli oggetti partial sono oggetti callabili con gli argomenti posizionali arg e gli argomenti di parole chiave keywords.

Di seguito un frammento di codice mostra come usare questa funzione partial nel comando del pulsante.

def change_label_number(num):
    counter = int(str(labelExample['text']))
    counter += num
    labelExample.config(text=str(counter))
    
buttonExample = tk.Button(app, text="Increase", width=30,
                          command=partial(change_label_number, 2))
Author: 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