El widget Radiobutton
de Tkinter ofrece una manera amigable para el usuario de presentar un conjunto de opciones mutuamente excluyentes. Este tutorial explora sus funcionalidades, guiándote a través de la creación, personalización y respuesta a las selecciones del usuario.
Tabla de Contenidos:
- Creando Botones de Radio
- Recuperando Valores Seleccionados
- Personalizando la Apariencia
- Usando Funciones Callback
1. Creando Botones de Radio
Para crear botones de radio, cada uno necesita estar enlazado a una variable compartida (típicamente una StringVar
). Esto asegura que solo un botón dentro del grupo pueda ser seleccionado a la vez. Aquí te mostramos cómo crear un conjunto básico:
import tkinter as tk
root = tk.Tk()
root.title("Ejemplo de Radiobutton en Tkinter")
selected_option = tk.StringVar(value="Opción A")
radio_button_a = tk.Radiobutton(root, text="Opción A", variable=selected_option, value="Opción A")
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="Opción B", variable=selected_option, value="Opción B")
radio_button_b.pack(anchor=tk.W)
radio_button_c = tk.Radiobutton(root, text="Opción C", variable=selected_option, value="Opción C")
radio_button_c.pack(anchor=tk.W)
root.mainloop()
Este código crea tres botones de radio. El argumento variable
los enlaza, y el atributo value
asigna un valor a la selección de cada botón.
2. Recuperando Valores Seleccionados
Acceder al valor seleccionado es sencillo. Simplemente usa el método get()
en la variable compartida:
import tkinter as tk
root = tk.Tk()
root.title("Obtener el Valor del Radiobutton")
selected_option = tk.StringVar(value="Opción A")
# ... (Creación de Radiobutton como arriba) ...
def get_selected():
print(f"Opción seleccionada: {selected_option.get()}")
button = tk.Button(root, text="Obtener Valor", command=get_selected)
button.pack()
root.mainloop()
Este ejemplo añade un botón que imprime la opción seleccionada cuando se hace clic. El método get()
recupera el valor actual de la StringVar
.
3. Personalizando la Apariencia
Puedes modificar los aspectos visuales del botón de radio. Por ejemplo, la opción indicatoron
controla la visibilidad del indicador, y selectcolor
cambia el color cuando está seleccionado:
import tkinter as tk
root = tk.Tk()
root.title("Personalizar la Apariencia del Radiobutton")
selected_option = tk.StringVar(value="Opción A")
radio_button_a = tk.Radiobutton(root, text="Opción A", variable=selected_option, value="Opción A", indicatoron=False, selectcolor="lightgreen")
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="Opción B", variable=selected_option, value="Opción B", selectcolor="lightblue")
radio_button_b.pack(anchor=tk.W)
root.mainloop()
Esto muestra cómo ocultar el indicador y cambiar el color de selección. Experimenta con otros estilos para lograr el aspecto deseado.
4. Usando Funciones Callback
Para un enfoque más limpio y receptivo, usa la opción command
para enlazar directamente una función a cada botón de radio:
import tkinter as tk
root = tk.Tk()
root.title("Callback del Radiobutton")
def option_selected():
print(f"Opción seleccionada: {selected_option.get()}")
selected_option = tk.StringVar(value="Opción A")
radio_button_a = tk.Radiobutton(root, text="Opción A", variable=selected_option, value="Opción A", command=option_selected)
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="Opción B", variable=selected_option, value="Opción B", command=option_selected)
radio_button_b.pack(anchor=tk.W)
root.mainloop()
Este método ejecuta option_selected
cada vez que se selecciona un botón, proporcionando una solución más eficiente y elegante para manejar las interacciones del usuario.