GUI Programming

Dominando los Radiobuttons de Tkinter: Una Guía Completa

Spread the love

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:

  1. Creando Botones de Radio
  2. Recuperando Valores Seleccionados
  3. Personalizando la Apariencia
  4. 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.

Deja una respuesta

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