Tutorial de Tkinter - Radiobutton
- Ejemplo básico de Tkinter Radiobutton
- Tkinter Radiobutton - Obtener valor
- Cambiar Tkinter Indicador de Radiobotón Tipo
- Función de devolución de llamada del botón de radio Bind Tkinter
Ha aprendido label, button y Checkbutton en las últimas secciones. Los widgets de Tkinter tienen opciones, propiedades o métodos bastante similares, por lo que a partir de esta sección, podríamos aprender a un ritmo rápido.
El Radiobuton es un botón de muchos tipos. Tiene más de una opción en la selección, pero el usuario sólo puede seleccionar una de ellas. Al igual que los widgets introducidos anteriormente, Radibutton puede contener texto o imagen y puede vincular la función o método de devolución de llamada a él. Esta función de devolución de llamada se dispara automáticamente cuando se presiona el botón.
Ejemplo básico de Tkinter Radiobutton
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=3)
rdioOne.grid(column=0, row=0)
rdioTwo.grid(column=0, row=1)
rdioThree.grid(column=0, row=2)
app.mainloop()
El resultado de la demostración básica de Radiobutton es el siguiente
radioValue = tk.IntVar()
Al igual que el botón de verificación, los botones de radio necesitan asociar valores de un tipo de datos particular con ellos.
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=3)
Aquí se crean botones con el texto de January
, February
y March
. Los botones de radio en el mismo grupo deben y deben tener valores únicos.
Tkinter Radiobutton - Obtener valor
Los botones de radio del mismo grupo comparten la misma variable, radioValue
, como se muestra en el ejemplo anterior, y se les asignan valores diferentes con la opción value
.
El valor del botón de radio seleccionado actualiza automáticamente la variable radioValue
que es un tk.IntVar
.
El texto de la etiqueta refleja automáticamente el valor del botón seleccionado en los códigos de ejemplo siguientes.
import tkinter as tk
app = tk.Tk()
app.geometry("200x100")
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text="January", variable=radioValue, value=0)
rdioTwo = tk.Radiobutton(app, text="Febuary", variable=radioValue, value=1)
rdioThree = tk.Radiobutton(app, text="March", variable=radioValue, value=2)
rdioOne.grid(column=0, row=0, sticky="W")
rdioTwo.grid(column=0, row=1, sticky="W")
rdioThree.grid(column=0, row=2, sticky="W")
labelValue = tk.Label(app, textvariable=radioValue)
labelValue.grid(column=2, row=0, sticky="E", padx=40)
app.mainloop()
La textvariable
de la etiqueta labelValue
es la misma que la opción variable
de los botones de radio, de modo que el texto de la etiqueta podría actualizarse automáticamente.
Cambiar Tkinter Indicador de Radiobotón Tipo
El indicador del botón de radio por defecto es un agujero circular con un espacio en blanco en su interior, pero también se puede sustituir por un cuadro que contenga texto o imagen. El cuadro de texto se levanta cuando el botón de opción no está seleccionado, y se hunde cuando se presiona.
rdioOne = tk.Radiobutton(
app, text="I am raised", variable=radioValue, value=1, indicatoron=0
)
indicatoron
es la opción de activar o desactivar el indicador del agujero circular del botón de raido. indicatoron
= indicator on
.
Función de devolución de llamada del botón de radio Bind Tkinter
Es exactamente lo mismo con [Tkinter Checkbutton](/es/tutorial/tkinter-tutorial/tkinter-checkbutton/#Tkinter Checkbutton Callback Function Binding) en la opción de cómo configurar la función de devolución de llamada del botón. Utilice la opción command=
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook