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: