Bucle autogenerador de radiobuttons y botón de envío - Tkinter desde cero - Capítulo 8


En este capítulo terminamos por el momento con el tema de los Radiobutton().
Vamos a ver cómo envíar a nuestro programa la opción seleccionada en el Radiobutton() en el momento de pulsar un botón.

Voy a continuar con el código del capítulo 7. Simplemente le voy a eliminar las funciones lambda a los Radiobutton() y a ponerle una a un botón. Quedará de esta forma:

Código

from tkinter import *
root = Tk()

x = IntVar()
x.set(value=1)

def actualiza_radio(value):
    Label(root, text=value).grid(row=3)

titulo = 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)

boton_envia = Button(root,
           text="Enviar",
           command=lambda: actualiza_radio(x.get())).grid(row=4)

root.mainloop()

Resultado

Con esto, se actualiza el estado de la opción seleccionada, así podemos enviar el valor correspondiente a nuestro programa al pulsar un botón.

Radiobutton Tkinter

StringVar

Veamos algo bastante interesante, las variables de control StringVar.
Estas variables pueden ser utilizadas para enviar datos de tipo string al pulsar el botón, en lugar de enviar el número de opción.

Código

from tkinter import *
root = Tk()

def actualiza_radio(value):
    Label(root, text=value).pack()

titulo = Label(root,text="Seleccione una opción").pack()

opciones = [["Color Rojo","rojo"],
           ["Color Azul","azul"],
           ["Color verde","verde"],
           ["Color amarillo","amarillo"]]

colores = StringVar()
colores.set("rojo")

for opcion, valor in opciones:
   Radiobutton(root, text=opcion, value=valor, variable=colores).pack()

boton_envia = Button(root,
           text="Enviar",
           command=lambda: actualiza_radio(colores.get())).pack()

root.mainloop()

Resultado

El resultado es que podemos ir enviando cualquier valor de tipo string. Si utilizamos bases de datos, todo esto será muy útil.
Lo veremos en los próximos capítulos.

Radiobutton Tkinter StringVar

Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


Comentarios

Si te quedan dudas sobre el temario, sobre Python, 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.