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