Tutorial de Tkinter - Botón de control

Jinku Hu 30 enero 2023
  1. Ejemplo básico de Tkinter Checkbutton
  2. Botón de control de Tkinter Seleccionar/Deseleccionar
  3. Tkinter Checkbutton State Toggle
  4. Vinculación de la función de devolución de llamada del botón de control de Tkinter
  5. Cambiar el valor por defecto del botón de control Tkinter
Tutorial de Tkinter - Botón de control

El widget Checkbutton es un widget que contiene un valor. Los checkbuttons pueden contener texto o imágenes. También puede enlazar la función de devolución de llamada que se llamará cuando se haga clic en el botón de verificación.

Para crear un widget de botón de control en una ventana padre existente, utilice

tk.Checkbutton(parent, option, ...)

Ejemplo básico de Tkinter Checkbutton

import tkinter as tk

app = tk.Tk()
app.geometry("150x100")

chkValue = tk.BooleanVar()
chkValue.set(True)

chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
chkExample.grid(column=0, row=0)

app.mainloop()

Tkinter Tutorial Botón de control Ejemplo básico

chkValue = tk.BooleanVar()

Cada botón de control debe estar asociado a una variable. El tipo de datos de la variable se determina por el botón de verificación cuando se selecciona/deselecciona.

chkValue.set(True)

Establece el valor original del botón de verificación. Como sólo está asignado con el tipo de datos Boolean, sólo tienes dos opciones aquí, True o False.

chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)

Ahora la instancia del botón de control se crea eventualmente con la variable chkValue que hicimos anteriormente.

chkExample.grid(column=0, row=0)

grid es otro tipo de gestor de diseño de Tkinter además de pack introducido en la sección Tkinter Label.

Tkinter tiene tres gestores de layout/geometría,

  • pack
  • grid
  • place

Presentaremos estos gestores de diseño/geometría en una sección de este tutorial.

Botón de control de Tkinter Seleccionar/Deseleccionar

El usuario puede hacer clic en el botón de control en la interfaz gráfica de usuario para seleccionar o deseleccionar el botón. También puede seleccionar o deseleccionar el botón usando el método select() y deselect().

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.select()
print "The checkbutton value when deselected is {}".format(chkValue.get())
The checkbutton value when selected is True
The checkbutton value when deselected is False

Aquí, el valor del botón de control se obtiene por el método get().

Tkinter Checkbutton State Toggle

El estado del botón de comprobación puede ser modificado por select() y deselect(), y también puede ser cambiado usando el método toggle().

import tkinter as tk

app = tk.Tk()
app.geometry("150x100")

chkValue = tk.BooleanVar()
chkValue.set(True)

chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
chkExample.grid(column=0, row=0)


print "The checkbutton original value is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled twice is {}".format(chkValue.get())

app.mainloop()
The checkbutton original value is True
The checkbutton value after toggled is False
The checkbutton value after toggled twice is True

Vinculación de la función de devolución de llamada del botón de control de Tkinter

El widget del botón de control se usa para seleccionar los estados y también podría vincular la función de devolución de llamada al evento cuando se selecciona/deselecciona, o más directamente, se conmuta. Siempre que se conmuta el estado del botón de control, se activa la función de rellamada.

import tkinter as tk
from _cffi_backend import callback


def callBackFunc():
    print "Oh. I'm clicked"


app = tk.Tk()
app.geometry("150x100")

chkValue = tk.BooleanVar()
chkValue.set(True)

chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue, command=callBackFunc)
chkExample.grid(column=0, row=0)

app.mainloop()

Cada vez que se pulsa el botón de comprobación, se puede ver que imprime Oh. I'm clicked en la consola.

La opción command en la clase de botones de control está pensada para vincular la función o el método de devolución de llamada cuando se presiona el botón.

Cambiar el valor por defecto del botón de control Tkinter

El valor por defecto correspondiente al botón de control no seleccionado es 0, y el valor por defecto del botón de control seleccionado es 1. Y también puede cambiar los valores por defecto del botón de control y su tipo de datos asociado al otro valor y/o tipo de datos.

import tkinter as tk

app = tk.Tk()
app.geometry("150x100")

chkValue = tk.StringVar()

chkExample = tk.Checkbutton(
    app, text="Check Box", var=chkValue, onvalue="RGB", offvalue="YCbCr"
)
chkExample.grid(column=0, row=0)

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.deselect()
print "The checkbutton value when deselected is {}".format(chkValue.get())

app.mainloop()
The checkbutton value when selected is RGB
The checkbutton value when deselected is YCbCr
chkExample = tk.Checkbutton(
    app, text="Check Box", var=chkValue, onvalue="RGB", offvalue="YCbCr"
)

Los valores onvalue y offvalue son opciones para cambiar los valores de los estados seleccionado y no seleccionado. Podrían tener tipos de datos como Int, String, Float u otros.

Atención
El tipo de datos Tkinter asociado al botón de comprobación será el mismo que el de onvalor y offvalor. En caso contrario, reporta _tkinter.TclError.
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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