Tkinter Tutorial - Radiobutton
- Esempio di base di Tkinter Radiobutton
- Tkinter Radiobutton - Ottieni valore
- Cambiare il tipo di indicatore del pulsante radio Tkinter
- Funzione Bind Tkinter Radiobutton Callback
Hai imparato label, button e Checkbutton nelle ultime sezioni. I widget di Tkinter hanno opzioni, proprietà o metodi abbastanza simili, quindi da questa sezione in poi, potremmo imparare ad un ritmo veloce.
Il Radiobuton è un pulsante di tipo one-of-many. Ha più di una opzione nella selezione, ma l’utente può selezionarne solo una. Come i widget introdotti in precedenza, Radibutton potrebbe contenere testo o immagine e potrebbe legare ad esso la funzione o il metodo di richiamata. Questa funzione di callback si attiva automaticamente quando si preme quel pulsante.
Esempio di base di Tkinter Radiobutton
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=3)
rdioOne.grid(column=0, row=0)
rdioTwo.grid(column=0, row=1)
rdioThree.grid(column=0, row=2)
app.mainloop()
Il risultato della demo di base di Radiobutton di cui sopra è il seguente
radioValue = tk.IntVar()
Proprio come il pulsante di controllo, i pulsanti radio devono associare ad essi valori di particolare tipo di dati.
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=3)
Qui vengono creati i pulsanti con il testo di January
, Febuary
e March
. I pulsanti di opzione dello stesso gruppo devono e devono avere valori unici.
Tkinter Radiobutton - Ottieni valore
I pulsanti radio dello stesso gruppo condividono la stessa variabile, radioValue
come mostrato nell’esempio precedente, e sono assegnati con valori diversi con l’opzione value
.
Il valore del pulsante di opzione selezionato aggiorna automaticamente la variabile radioValue
che è un tk.IntVar
.
Il testo dell’etichetta riflette automaticamente il valore del pulsante selezionato nei codici dell’esempio seguente.
import tkinter as tk
app = tk.Tk()
app.geometry("200x100")
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=0)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=1)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=2)
rdioOne.grid(column=0, row=0, sticky="W")
rdioTwo.grid(column=0, row=1, sticky="W")
rdioThree.grid(column=0, row=2, sticky="W")
labelValue = tk.Label(app, textvariable=radioValue)
labelValue.grid(column=2, row=0, sticky="E", padx=40)
app.mainloop()
La testovariabile
dell’etichetta labelValue
è la stessa con l’opzione variabile
dei pulsanti radio, in modo che il testo dell’etichetta si aggiorni automaticamente.
Cambiare il tipo di indicatore del pulsante radio Tkinter
L’indicatore di default del pulsante radio è un foro circolare con uno spazio bianco all’interno, ma potrebbe anche essere sostituito con una scatola contenente testo o immagine. La casella di testo si alza quando il pulsante di opzione non è selezionato e si annega quando viene premuto.
rdioOne = tk.Radiobutton(
app, text="I am raised", variable=radioValue, value=1, indicatoron=0
)
indicatoron
è l’opzione per attivare o disattivare l’indicatore del foro circolare del pulsante raido. indicatoron
= indicatore on
.
Funzione Bind Tkinter Radiobutton Callback
E’ esattamente lo stesso con [Tkinter Checkbutton](/it/tutorial/tkinter-tutorial/tkinter-checkbutton/#Tkinter Checkbutton Callback Function Binding) nell’opzione come impostare la funzione di callback del pulsante. Utilizzare l’opzione command=
.
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 Facebook