Curso de TKINTER desde cero

¿Cómo utilizar funciones con botones de Tkinter?

Capítulo 5: Llamar a funciones desde un botón

En este capítulo, vamos a empezar a ver cómo interactuar con nuestro programa.
Para esto, lo primero que se me ocurre es crear una función que cuando hagas click en un botón, este muestre un texto.

Llamar a una función desde un botón de Tkinter

Creamos la función.
Por cierto, hay casos como el widget Label() que puedes ahorrarte alguna línea de código añadiendo el grid() en la misma línea como escribo en el código de abajo.

from tkinter import *
root = Tk()

def click_boton():
	Label(root, text="¡No vuelvas a presionarlo!").grid()

boton1 = Button(root,
				text="No presiones el botón rojo",
				bg="red",
				padx=100,
				pady=25).grid(row=1, column=2)

root.mainloop()
Botón Tkinter

Y ahora, para llamar a la función desde un botón, lo hacemos con el atributo command con el valor de la llamada.

boton1 = Button(root,
					text="No presiones el botón rojo",
					bg="red",
					padx=100,
					pady=25).grid(row=1, column=2, command=click_boton())

Si en esta llamada añades los paréntesis como en el código de arriba, se ejecuta la función directamente.
En este caso no queremos que se llame a la función hasta que hagamos click en el botón. Por lo tanto, borra los paréntesis.

boton1 = Button(root, 
					text="No presiones el botón rojo",
					bg="red",
					padx=100,
					pady=25).grid(row=1, column=2,command=click_boton)

Esta vez, en el momento que hagas click, aparecerá el widget Label() con el texto y se cargará tantas veces cómo pulsaciones realices en el botón.
En la siguiente imagen, he presionado cinco veces el botón:

Botón llamando a función en Tkinter

Bien, ¿Y si lo que quieres es que solo se pueda ejecutar la función una sola vez por mucho que presiones el botón.

Es muy fácil, añade al Label() una posición en el grid(), de esa forma evitas que aparezca en lugares no deseados o repetidamente.

def click_boton():
	Label(root, 
	text="¡No vuelvas a presionarlo!").grid(row=1, column=0)
Botón llamando a función en Tkinter

Si tienes ganas de practicar, te dejo un ejercicio.
¿Cómo harías para que se mostrase el texto a la izquierda? ¿Y a la derecha?

Comentarios

Si te quedan dudas sobre el temario, sobre Tkinter, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.