Botón de radio en Tkinter | Python

El botón de radio es un widget estándar de Tkinter que se utiliza para implementar una de muchas selecciones. Los botones de opción pueden contener texto o imágenes, y puede asociar una función o método de Python con cada botón. Cuando se presiona el botón, Tkinter llama automáticamente a esa función o método.
Sintaxis: 
 

botón = Botón de radio (maestro, texto = «Nombre en el botón», variable = «variable compartida», valor = «valores de cada botón», opciones = valores, …)
variable compartida = Una variable Tkinter compartida entre todos los botones de radio 
valor = cada uno el botón de radio debe tener un valor diferente; de ​​lo contrario, se seleccionará más de 1 botón de radio. 
 

Código #1: 
Botones de radio, pero no en forma de botones, en forma de caja de botones . Para mostrar el cuadro de botones, la opción indicador/indicador debe establecerse en 0. 
 

Python3

# Importing Tkinter module
from tkinter import *
# from tkinter.ttk import *
 
# Creating master Tkinter window
master = Tk()
master.geometry("175x175")
 
# Tkinter string variable
# able to store any string value
v = StringVar(master, "1")
 
# Dictionary to create multiple buttons
values = {"RadioButton 1" : "1",
          "RadioButton 2" : "2",
          "RadioButton 3" : "3",
          "RadioButton 4" : "4",
          "RadioButton 5" : "5"}
 
# Loop is used to create multiple Radiobuttons
# rather than creating each button separately
for (text, value) in values.items():
    Radiobutton(master, text = text, variable = v,
                value = value, indicator = 0,
                background = "light blue").pack(fill = X, ipady = 5)
 
# Infinite loop can be terminated by
# keyboard or mouse interrupt
# or by any predefined function (destroy())
mainloop()

Producción: 
 

El fondo de estas cajas de botones es azul claro. Las cajas de botones con fondo blanco y hundidas son las seleccionadas.
 

  
Código #2: Cambio de cajas de botones en botones de radio estándar. Para esta opción eliminar el indicador. 
 

Python3

# Importing Tkinter module
from tkinter import *
from tkinter.ttk import *
 
# Creating master Tkinter window
master = Tk()
master.geometry("175x175")
 
# Tkinter string variable
# able to store any string value
v = StringVar(master, "1")
 
# Dictionary to create multiple buttons
values = {"RadioButton 1" : "1",
        "RadioButton 2" : "2",
        "RadioButton 3" : "3",
        "RadioButton 4" : "4",
        "RadioButton 5" : "5"}
 
# Loop is used to create multiple Radiobuttons
# rather than creating each button separately
for (text, value) in values.items():
    Radiobutton(master, text = text, variable = v,
        value = value).pack(side = TOP, ipady = 5)
 
# Infinite loop can be terminated by
# keyboard or mouse interrupt
# or by any predefined function (destroy())
mainloop()

Producción: 

Estos botones de radio se crean usando tkinter.ttk, es por eso que la opción de fondo no está disponible, pero podemos usar la clase de estilo para diseñar. 
 
Código n. ° 3: agregar estilo al botón de opción usando la clase de estilo. 
 

Python3

# Importing Tkinter module
from tkinter import *
from tkinter.ttk import *
 
# Creating master Tkinter window
master = Tk()
master.geometry('175x175')
 
# Tkinter string variable
# able to store any string value
v = StringVar(master, "1")
 
# Style class to add style to Radiobutton
# it can be used to style any ttk widget
style = Style(master)
style.configure("TRadiobutton", background = "light green",
                foreground = "red", font = ("arial", 10, "bold"))
 
# Dictionary to create multiple buttons
values = {"RadioButton 1" : "1",
          "RadioButton 2" : "2",
          "RadioButton 3" : "3",
          "RadioButton 4" : "4",
          "RadioButton 5" : "5"}
 
# Loop is used to create multiple Radiobuttons
# rather than creating each button separately
for (text, value) in values.items():
    Radiobutton(master, text = text, variable = v,
                value = value).pack(side = TOP, ipady = 5)
 
# Infinite loop can be terminated by
# keyboard or mouse interrupt
# or by any predefined function (destroy())
mainloop()

Producción: 

Puede observar que el estilo de fuente cambia, así como también cambian los colores de fondo y de primer plano. Aquí, TRadiobutton se usa en la clase de estilo, automáticamente aplica estilo a todos los botones de radio disponibles.
 

Publicación traducida automáticamente

Artículo escrito por sanjeev2552 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *