El widget `Checkbutton()` de Tkinter es una de las opciones más comunes en interfaces gráficas que permite a los usuarios seleccionar o deseleccionar opciones. Se utiliza principalmente para crear casillas de verificación que el usuario puede activar o desactivar. Un aspecto clave de los `Checkbutton` es que permiten seleccionar múltiples opciones de forma simultánea, a diferencia de los `Radiobutton`, donde solo una opción puede estar seleccionada a la vez.
En este post, cubriremos todo lo que necesitas saber sobre el widget `Checkbutton()`, desde su creación hasta su configuración, los parámetros disponibles y los métodos útiles.
Un `Checkbutton` es una casilla que permite a los usuarios seleccionar o deseleccionar una opción. Cuando está seleccionado, tiene un valor asociado (generalmente `1` o `True`), y cuando está deseleccionado, tiene otro valor (por defecto `0` o `False`).
La forma básica de crear un `Checkbutton` es proporcionarle un widget padre (generalmente la ventana principal) y una opción de texto que aparecerá junto a la casilla.
import tkinter as tk
ventana = tk.Tk()
casilla = tk.Checkbutton(ventana, text="Opción 1")
casilla.pack()
ventana.mainloop()
En este ejemplo:
- `ventana` es el widget padre donde se colocará el `Checkbutton`.
- `text="Opción 1"` es el texto que aparecerá junto a la casilla.
El widget `Checkbutton()` tiene varios parámetros que te permiten personalizar su apariencia y comportamiento. A continuación, se detallan los más importantes:
El widget padre donde se colocará el `Checkbutton`. Generalmente es la ventana principal (`ventana`), pero también puede ser un `Frame` u otro contenedor.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1")
Establece el texto que aparecerá junto a la casilla de verificación.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Aceptar términos")
Asocia una variable de control (como `IntVar`, `StringVar`, `BooleanVar`) al `Checkbutton`, que almacenará el estado (seleccionado o deseleccionado). Esta variable se actualiza automáticamente cuando se selecciona o deselecciona la casilla.
Ejemplo:
var = tk.IntVar()
casilla = tk.Checkbutton(ventana, text="Opción 1", variable=var)
Establece el valor que la variable asociada tendrá cuando el `Checkbutton` esté seleccionado. El valor predeterminado es `1`.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", variable=var, onvalue=5)
Establece el valor que la variable asociada tendrá cuando el `Checkbutton` no esté seleccionado. El valor predeterminado es `0`.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", variable=var, offvalue=3)
Define una función o método que se ejecutará automáticamente cuando el usuario seleccione o deseleccione el `Checkbutton`.
Ejemplo:
def on_toggle():
print("La casilla fue seleccionada o deseleccionada")
casilla = tk.Checkbutton(ventana, text="Opción 1", command=on_toggle)
Controla el estado del `Checkbutton`. Los valores posibles son:
- `normal` (predeterminado): El `Checkbutton` es interactivo.
- `disabled`: El `Checkbutton` está deshabilitado y no puede ser seleccionado.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", state="disabled")
Define el color de fondo del `Checkbutton`.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", bg="lightblue")
Define el color del texto.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", fg="red")
Especifica el tipo y tamaño de la fuente del texto.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", font=("Arial", 14))
Establecen el espacio de relleno (padding) dentro del `Checkbutton`, tanto horizontal (`padx`) como vertical (`pady`).
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", padx=10, pady=5)
Define el color que se muestra cuando la casilla está seleccionada.
Ejemplo:
casilla = tk.Checkbutton(ventana, text="Opción 1", selectcolor="green")
El widget `Checkbutton` también tiene varios métodos útiles que te permiten interactuar con él y modificar su estado en tiempo de ejecución.
Selecciona la casilla de verificación programáticamente.
Ejemplo:
casilla.select() # La casilla se selecciona automáticamente
Deselecciona la casilla de verificación.
Ejemplo:
casilla.deselect() # La casilla se deselecciona automáticamente
Cambia el estado del `Checkbutton` (de seleccionado a deseleccionado o viceversa).
Ejemplo:
casilla.toggle() # Si está seleccionado, se deselecciona y viceversa
Permite cambiar las propiedades del `Checkbutton` después de haber sido creado.
Ejemplo:
casilla.config(text="Nueva opción", fg="blue")
Simula que el usuario ha seleccionado o deseleccionado la casilla, disparando el comando asociado.
Ejemplo:
casilla.invoke() # Ejecuta el command asociado
Aquí tienes un ejemplo completo donde se utilizan varios parámetros y métodos del `Checkbutton`:
import tkinter as tk
# Función que se ejecuta al seleccionar o deseleccionar la casilla
def on_toggle():
if var.get() == 1:
print("Casilla seleccionada")
else:
print("Casilla deseleccionada")
# Crear la ventana principal
ventana = tk.Tk()
ventana.title("Ejemplo Completo de Checkbutton")
# Crear una variable de control
var = tk.IntVar()
# Crear el Checkbutton con varias propiedades
casilla = tk.Checkbutton(
ventana,
text="Aceptar términos y condiciones",
variable=var,
onvalue=1,
offvalue=0,
command=on_toggle,
bg="lightyellow",
font=("Arial", 12)
)
casilla.pack(pady=20)
# Botón para seleccionar y deseleccionar la casilla programáticamente
def seleccionar():
casilla.select()
def deseleccionar():
casilla.deselect()
btn_seleccionar = tk.Button(ventana, text="Seleccionar casilla", command=seleccionar)
btn_deseleccionar = tk.Button(ventana, text="Deseleccionar casilla", command=deseleccionar)
btn_seleccionar.pack(pady=10)
btn_deseleccionar.pack(pady=10)
# Iniciar el bucle principal
ventana.mainloop()
Descripción del Ejemplo:
- `Checkbutton`: El `Checkbutton` permite aceptar los términos y condiciones. Está asociado a una variable `IntVar()` que almacena `1` cuando está seleccionado y `0` cuando no lo está.
- Funciones `select()` y `deselect()`: Hay dos botones que permiten seleccionar o deseleccionar la casilla de manera programática.
- `on_toggle()`: Esta función se ejecuta cuando la casilla es seleccionada o deseleccionada, mostrando en la consola el estado actual.
Puedes conocer todo el contenido que comparto en mi perfil de LinkedIn
Puedes descargar GRATIS mi manual completo en pdf de Python Rápido