
El widget Radiobutton() de Tkinter y las variables de control
Capítulo 7: Formularios con el widget Radiobutton() y variables de control
En este capítulo veremos cómo añadir el tipo de widget Radiobutton()
y las variables de control de Tkinter. Este tipo de formulario nos mostrará una serie de opciones y solo podremos seleccionar una de las disponibles.
Antes de empezar viendo cómo poner estos Radiobutton()
tenemos que saber lo que son las variables de control de Tkinter.
¿Qué son las variables de control de Tkinter?
Las variables de control de Tkinter son objetos especiales asociados a los widgets de Tkinter para almacenar sus valores. De esta forma vamos a poder trabajar correctamente con los diferentes tipos de formularios que tiene.
Tenemos variables de tipo numérico para los enteros (IntVar
) y DoubleVar
para los floats. También tenemos una variable para los strings llamada StringVar
y otra para los booleanos, BooleanVar
.
Las variables de control las vamos a utilizar para conectar también varios widgets del mismo tipo. Es decir si tenemos varias opciones Radiobutton()
podremos relacionar las posibles opciones, creando así un grupo de widgets.
Veamos un ejemplo práctico, voy a escribir dos Radiobutton()
y los voy a relacionar.
from tkinter import *
root = Tk()
x = IntVar()
Label(root, text="Seleccione una opción").grid(row=0)
Radiobutton(root,
text="Esta es la primera opción.",
value=1,
variable=x).grid(row=1)
Radiobutton(root,
text="Esta es la segunda opción.",
value=2,
variable=x).grid(row=2)
root.mainloop()
Ya tenemos dos opciones. Ahora sí lo ejecutamos no va a hacer nada por el momento, pero ya podemos marcar una de las dos opciones, puesto que en este tipo de formulario eso es lo que debe ocurrir.
En este momento si hago clic en la opción número uno, lo que va a pasar es que en la x
está almacenando el valor integer 1
. Si pulso la segunda opción se almacena el número 2
. Sabiendo esto ya podemos hacer otro tipo de operaciones.
Cómo puedes observar en el código, tengo una variable x
con un valor IntVar()
, lo que la convierte en variable de control de Tkinter de tipo integer.
Para establecer la relación lo hacemos con el atributo variable
de cada Radiobutton()
.



Establecer opción por defecto con Radiobutton()
Si quieres mostrar una opción por defecto lo puedes hacer con un set
. Por defecto, saldrá esa opción marcada.
Añade este set
debajo de la declaración de la variable x
:
x.set(value=1)
No obstante, esto nos va a dar un problema, y es que al hacer un set
, independientemente de la opción que marquemos, va a ser en el programa siempre la 1
. Puedo demostrarlo con get
:
opcion_set = Label(root, text=x.get()).grid(row=3)
Pese a estar marcando la segunda opción, por culpa del set
, siempre se queda la opción 1
.

Para que se actualice la opción seleccionada en cada momento, deberás crear una función que sea capaz de actualizarla. Simplemente pones el label
dentro de la función:
def actualiza(value):
Label(root, text=value).grid(row=3)
Para ejecutar esta función, le añadimos un command
a cada Radiobutton()
:
Radiobutton(root,
text="Esta es la primera opción.",
value=1,
variable=x, command=lambda: actualiza(x.get())).grid(row=1)
Radiobutton(root,
text="Esta es la segunda opción.",
value=2,
variable=x, command=lambda: actualiza(x.get())).grid(row=2)
Ahora, cada opción va a enviar su valor correspondiente.


Dejo el capítulo aquí y en el siguiente veremos un poco más sobre los Radiobutton()
.
Comentarios
Si te quedan dudas sobre el temario, sobre Tkinter, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.