Tutorial de Tkinter - Botón

Jinku Hu 30 enero 2023
  1. Opción default del botón Tkinter
  2. Comando Tkinter Button Callback
Tutorial de Tkinter - Botón

El widget de botones de Tkinter es bastante similar al widget de etiquetas de Tkinter. Tiene casi las mismas opciones que las de la etiqueta, excepto que tiene una opción extra default. Demostraremos los detalles de esta opción default después de un ejemplo básico de botón.

Podrías generar dos botones más simples usando los códigos de demostración de abajo.

from sys import version_info

if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk

app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()

La ventana con dos botones adyacentes entre sí se muestra después de ejecutar los códigos.

Etiqueta Tkinter Tutorial_Basic

Opción default del botón Tkinter

La opción default en el botón dice que el botón es el botón por defecto en la GUI, por ejemplo, el que se invoca automáticamente cuando el usuario presiona la tecla Enter o Return.

Comando Tkinter Button Callback

La opción command invoca la función de devolución de llamada cuando el botón es presionado.

role=“alert”>El estado del botón debe estar activo cuando su opción de comando está activada, de lo contrario, no se invoca la devolución de llamada.

from sys import version_info

if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk


app = tk.Tk()
labelExample = tk.Button(app, text="0")


def change_label_number():
    counter = int(str(labelExample["text"]))
    counter += 1
    labelExample.config(text=str(counter))


buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)

buttonExample.pack()
labelExample.pack()
app.mainloop()

Crea un botón y un widget de etiqueta en la ventana principal. El número en el texto de la etiqueta se incrementa en 1 cada vez que se pulsa el botón.

Tkinter Tutorial_Button Command Callback

def change_label_number():
    counter = int(str(labelExample["text"]))
    counter += 1
    labelExample.config(text=str(counter))

El change_label_number es la función que se invoca cuando se hace clic en el botón. Obtiene el número de etiqueta y luego establece la etiqueta incrementada en uno.

buttonExample = tk.Button(app, text="Increase", width=30, command=change_label_number)

Construye el enlace entre el botón y su función de devolución de llamada.

Función de retrollamada del comando del botón de Tkinter con argumentos

Necesitas un objeto parcial de functools si necesitas pasar argumentos a las funciones de devolución de llamada. Los objetos parciales son objetos llamables con los argumentos posicionales args y los argumentos de palabras clave keywords.

El siguiente fragmento de código demuestra cómo usar esta función parcial en el comando button.

def change_label_number(num):
    counter = int(str(labelExample["text"]))
    counter += num
    labelExample.config(text=str(counter))


buttonExample = tk.Button(
    app, text="Increase", width=30, command=partial(change_label_number, 2)
)
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