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.
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
.
Il comando di richiamo del pulsante predefinito non viene creato automaticamente. È necessario creare manualmente.
Tkinter Comando del pulsante Callback
L’opzione command
richiama la funzione di richiamo quando si preme il pulsante.
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.
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.
Il nome della funzione nelle opzioni del pulsante è senza parentesi.
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))