Python 3 - Pulsante radio Tkinter
Questo widget implementa un pulsante a scelta multipla, che è un modo per offrire molte selezioni possibili all'utente e consente all'utente di sceglierne solo una.
Per implementare questa funzionalità, ogni gruppo di radiobutton deve essere associato alla stessa variabile e ciascuno dei pulsanti deve simboleggiare un singolo valore. Puoi usare il tasto Tab per passare da un pulsante radio a un altro.
Sintassi
Ecco la semplice sintassi per creare questo widget:
w = Radiobutton ( master, option, ... )
Parametri
master - Questo rappresenta la finestra principale.
options- Ecco l'elenco delle opzioni più comunemente utilizzate per questo widget. Queste opzioni possono essere utilizzate come coppie chiave-valore separate da virgole.
Sr.No. | Opzione e descrizione |
---|---|
1 | activebackground Il colore di sfondo quando il mouse si trova sopra il pulsante di opzione. |
2 | activeforeground Il colore di primo piano quando il mouse si trova sul pulsante di opzione. |
3 | anchor Se il widget occupa uno spazio più grande del necessario, questa opzione specifica dove si troverà il pulsante di opzione in quello spazio. L'impostazione predefinita è anchor = CENTER. |
4 | bg Il colore di sfondo normale dietro l'indicatore e l'etichetta. |
5 | bitmap Per visualizzare un'immagine monocromatica su un pulsante di opzione, impostare questa opzione su una bitmap. |
6 | borderwidth La dimensione del bordo attorno alla parte dell'indicatore stesso. L'impostazione predefinita è 2 pixel. |
7 | command Una procedura da chiamare ogni volta che l'utente cambia lo stato di questo radiobutton. |
8 | cursor Se si imposta questa opzione su un nome di cursore ( freccia, punto ecc. ), Il cursore del mouse cambierà in quel modello quando si trova sopra il pulsante di opzione. |
9 | font Il carattere utilizzato per il testo. |
10 | fg Il colore utilizzato per il rendering del testo. |
11 | height Il numero di righe (non pixel) di testo sul pulsante di opzione. L'impostazione predefinita è 1. |
12 | highlightbackground Il colore dell'evidenziazione dello stato attivo quando il pulsante di opzione non ha lo stato attivo. |
13 | highlightcolor Il colore dell'evidenziazione dello stato attivo quando il pulsante di opzione ha lo stato attivo. |
14 | image Per visualizzare un'immagine grafica invece del testo per questo pulsante di opzione, impostare questa opzione su un oggetto immagine. |
15 | justify Se il testo contiene più righe, questa opzione controlla il modo in cui il testo è giustificato: CENTRO (impostazione predefinita), SINISTRA o DESTRA. |
16 | padx Quanto spazio lasciare a sinistra ea destra del pulsante di opzione e del testo. L'impostazione predefinita è 1. |
17 | pady Quanto spazio lasciare sopra e sotto il pulsante di opzione e il testo. L'impostazione predefinita è 1. |
18 | relief Specifica l'aspetto di un bordo decorativo attorno all'etichetta. L'impostazione predefinita è FLAT; per altri valori. |
19 | selectcolor Il colore del pulsante di opzione quando è impostato. L'impostazione predefinita è il rosso. |
20 | selectimage Se stai utilizzando l'opzione immagine per visualizzare un'immagine invece del testo quando il pulsante di opzione è deselezionato, puoi impostare l'opzione di selezione dell'immagine su un'immagine diversa che verrà visualizzata quando il pulsante di opzione è impostato. |
21 | state L'impostazione predefinita è state = NORMAL, ma è possibile impostare state = DISABLED per disattivare il controllo e impedirne la risposta. Se il cursore si trova attualmente sul pulsante di opzione, lo stato è ATTIVO. |
22 | text L'etichetta visualizzata accanto al pulsante di opzione. Usa le nuove righe ("\ n") per visualizzare più righe di testo. |
23 | textvariable Per asservire il testo visualizzato in un widget etichetta a una variabile di controllo della classe StringVar , impostare questa opzione su quella variabile. |
24 | underline È possibile visualizzare una sottolineatura (_) sotto l'ennesima lettera del testo, contando da 0, impostando questa opzione su n. L'impostazione predefinita è underline = -1, che significa nessuna sottolineatura. |
25 | value Quando un pulsante di opzione viene attivato dall'utente, la sua variabile di controllo viene impostata sull'opzione del valore corrente. Se la variabile di controllo è un IntVar , assegna a ciascun pulsante di opzione nel gruppo un'opzione di valore intero diverso. Se la variabile di controllo è una StringVar , assegna a ciascun pulsante di opzione un'opzione di valore stringa diversa. |
26 | variable La variabile di controllo che questo pulsante radio condivide con gli altri pulsanti radio del gruppo. Può essere un IntVar o un StringVar. |
27 | width Larghezza dell'etichetta in caratteri (non pixel!). Se questa opzione non è impostata, l'etichetta verrà ridimensionata per adattarsi al suo contenuto. |
28 | wraplength È possibile limitare il numero di caratteri in ciascuna riga impostando questa opzione sul numero desiderato. Il valore predefinito, 0, significa che le righe verranno interrotte solo in corrispondenza di nuove righe. |
Metodi
Sr.No. | Metodo e descrizione |
---|---|
1 | deselect() Cancella (disattiva) il pulsante di opzione. |
2 | flash() Fa lampeggiare il pulsante di opzione alcune volte tra i suoi colori attivi e normali, ma lo lascia come è iniziato. |
3 | invoke() È possibile chiamare questo metodo per ottenere le stesse azioni che si verificherebbero se l'utente facesse clic sul pulsante di opzione per modificarne lo stato. |
4 | select() Imposta (attiva) il pulsante di opzione. |
Esempio
Prova tu stesso il seguente esempio:
# !/usr/bin/python3
from tkinter import *
def sel():
selection = "You selected the option " + str(var.get())
label.config(text = selection)
root = Tk()
var = IntVar()
R1 = Radiobutton(root, text = "Option 1", variable = var, value = 1,
command = sel)
R1.pack( anchor = W )
R2 = Radiobutton(root, text = "Option 2", variable = var, value = 2,
command = sel)
R2.pack( anchor = W )
R3 = Radiobutton(root, text = "Option 3", variable = var, value = 3,
command = sel)
R3.pack( anchor = W)
label = Label(root)
label.pack()
root.mainloop()
Risultato
Quando il codice sopra viene eseguito, produce il seguente risultato: