1. Checkbox (Checkbutton)
Il checkbox è un pulsante quadrato che può essere selezionato o deselezionato. È utile quando serve offrire all'utente una scelta tra una o più opzioni tra quelle disponibili.
Creazione di un checkbox
Per creare un checkbox, utilizza il widget Checkbutton. Per monitorare lo stato del checkbox (selezionato o no), si utilizza una variabile IntVar, che assume il valore 1 se il checkbox è selezionato, altrimenti 0.
import tkinter as tk
# Funzione per verificare lo stato del checkbox
def show_status():
print("Attivo" if var.get() == 1 else "Disattivo")
# Creazione di una finestra
root = tk.Tk()
root.title("Esempio con checkbox")
# Variabile per monitorare lo stato
var = tk.IntVar()
# Checkbox con associazione alla variabile var
checkbox = tk.Checkbutton(root, text="Abilita opzione", variable=var, command=show_status)
checkbox.pack(pady=20)
root.mainloop()
Spiegazione del codice
-
variable=var: Associa il checkbox alla variabilevar, che si aggiorna ogni volta che lo stato del checkbox cambia. - Funzione
show_status(): Stampa sulla console lo stato attuale del checkbox. Se il checkbox è selezionato, mostra "Attivo", altrimenti "Disattivo".
Utilizzo di più checkbox
Se hai bisogno di opzioni indipendenti, puoi creare più checkbox, ognuno associato alla sua variabile.
# Variabili per monitorare gli stati
option1 = tk.IntVar()
option2 = tk.IntVar()
# Checkbox
check1 = tk.Checkbutton(root, text="Opzione 1", variable=option1)
check2 = tk.Checkbutton(root, text="Opzione 2", variable=option2)
check1.pack()
check2.pack()
2. Radio button (Radiobutton)
I radio button sono un gruppo di pulsanti rotondi, tra i quali l'utente può selezionare solo una opzione. Sono utili quando bisogna offrire una scelta unica tra più possibilità.
Creazione di radio button
Per creare i radio button, utilizza il widget Radiobutton. Per collegare i radio button e renderli interdipendenti, devono essere tutti associati alla stessa variabile (IntVar o StringVar).
# Funzione per mostrare la scelta selezionata
def show_choice():
print(f"Opzione scelta: {choice.get()}")
# Variabile per monitorare la selezione
choice = tk.IntVar()
# Radio button
radio1 = tk.Radiobutton(root, text="Opzione 1", variable=choice, value=1, command=show_choice)
radio2 = tk.Radiobutton(root, text="Opzione 2", variable=choice, value=2, command=show_choice)
radio3 = tk.Radiobutton(root, text="Opzione 3", variable=choice, value=3, command=show_choice)
radio1.pack()
radio2.pack()
radio3.pack()
Spiegazione del codice
-
variable=choice: Associa tutti i radio button alla stessa variabilechoice, rendendoli così interdipendenti. -
value: Determina il valore che la variabilechoiceassume quando l'utente seleziona quel radio button. - Funzione
show_choice(): Mostra sulla console l'opzione selezionata.
Radio button con valori testuali
Puoi anche associare i radio button a una variabile di tipo StringVar, per utilizzare valori testuali.
# Variabile per la selezione del testo
color_choice = tk.StringVar()
# Radio button con valori testuali
radio_red = tk.Radiobutton(root, text="Rosso", variable=color_choice, value="Red")
radio_blue = tk.Radiobutton(root, text="Blu", variable=color_choice, value="Blue")
radio_green = tk.Radiobutton(root, text="Verde", variable=color_choice, value="Green")
radio_red.pack()
radio_blue.pack()
radio_green.pack()
3. Spinbox (Spinbox)
Lo spinbox consente all'utente di scegliere un valore numerico da un intervallo. Questo widget è utile per inserire valori numerici come età o quantità.
Creazione di uno spinbox
In Tkinter, uno spinbox si crea con il widget Spinbox, che consente all'utente sia di digitare manualmente un valore, sia di sceglierlo tramite le frecce.
# Funzione per mostrare il valore selezionato
def show_spin_value():
print(f"Valore: {spin.get()}")
# Spinbox da 1 a 10
spin = tk.Spinbox(root, from_=1, to=10, command=show_spin_value)
spin.pack(pady=20)
Spiegazione del codice
from_eto: Determinano l'intervallo di valori per lo spinbox.- Funzione
show_spin_value(): Mostra il valore selezionato nella console ogni volta che viene modificato.
GO TO FULL VERSION