CodeGym /Corso Java /Python SELF IT /Interazione con checkbox, radio button e spinbox

Interazione con checkbox, radio button e spinbox

Python SELF IT
Livello 50 , Lezione 2
Disponibile

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.

Python
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 variabile var, 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.

Python
# 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).

Python
# 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 variabile choice, rendendoli così interdipendenti.
  • value: Determina il valore che la variabile choice assume 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.

Python
# 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.

Python
# 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_ e to: Determinano l'intervallo di valori per lo spinbox.
  • Funzione show_spin_value(): Mostra il valore selezionato nella console ogni volta che viene modificato.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION