Guía Completa sobre `Checkbutton()` en Tkinter


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.



¿Qué es un `Checkbutton()` en Tkinter?

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`). 



Crear un `Checkbutton()`

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.



Parámetros de `Checkbutton()`

El widget `Checkbutton()` tiene varios parámetros que te permiten personalizar su apariencia y comportamiento. A continuación, se detallan los más importantes:


1. `master`

  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")



2. `text`

  Establece el texto que aparecerá junto a la casilla de verificación.

  

Ejemplo: 

   casilla = tk.Checkbutton(ventana, text="Aceptar términos")



3. `variable`

  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)



4. `onvalue`

  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)



5. `offvalue`

  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)



6. `command`

  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)



7. `state`

  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")



8. `bg` o `background`

  Define el color de fondo del `Checkbutton`.


  Ejemplo:

   casilla = tk.Checkbutton(ventana, text="Opción 1", bg="lightblue")



9. `fg` o `foreground`

  Define el color del texto.


  Ejemplo:

   casilla = tk.Checkbutton(ventana, text="Opción 1", fg="red")



10. `font`

  Especifica el tipo y tamaño de la fuente del texto.


  Ejemplo:

   casilla = tk.Checkbutton(ventana, text="Opción 1", font=("Arial", 14))



11. `padx` y `pady`

  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)



12. `selectcolor`

  Define el color que se muestra cuando la casilla está seleccionada.


  Ejemplo:

   casilla = tk.Checkbutton(ventana, text="Opción 1", selectcolor="green")



Métodos del Widget `Checkbutton`

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.


1. `select()`

  Selecciona la casilla de verificación programáticamente.


  Ejemplo:

   casilla.select() # La casilla se selecciona automáticamente



2. `deselect()`

  Deselecciona la casilla de verificación.


  Ejemplo:

   casilla.deselect() # La casilla se deselecciona automáticamente



3. `toggle()`

  Cambia el estado del `Checkbutton` (de seleccionado a deseleccionado o viceversa).


  Ejemplo:

   casilla.toggle() # Si está seleccionado, se deselecciona y viceversa



4. `config()` o `configure()`

  Permite cambiar las propiedades del `Checkbutton` después de haber sido creado.


  Ejemplo:

   casilla.config(text="Nueva opción", fg="blue")



5. `invoke()`

  Simula que el usuario ha seleccionado o deseleccionado la casilla, disparando el comando asociado.


  Ejemplo:

   casilla.invoke() # Ejecuta el command asociado



Ejemplo Completo con `Checkbutton`

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.



Hay mucho más contenido sobre Python para ti

Puedes conocer todo el contenido que comparto en mi perfil de LinkedIn

 

Puedes descargar GRATIS mi manual completo en pdf de Python Rápido


image


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.