Jugando con los botones en Tkinter, tutorial 3.

Hola a tod@s de nuevo, como ya os prometí voy a seguir con el fantástico módulo Tkinter, en anteriores posts, hemos aprendido a crear la ventana y añadir en ella los básicos "Widgets" con los que trabajaremos tanto como a añadirle colores, formato...


IMPORTANTE: Este post debe de seguirse desde la consola interactiva de python y no escribiendo un archivo.py

Pero.... de nada nos serviría tanto botón si no los podemos usar por ejemplo, para llamar a una función, bueno, pues después de buscar y buscar por la red he encontrado la solución, resulta que las entradas de texto tienen un método muy práctico llamado get, y los botones un argumento aún mejor llamado command.




Ahora vamos a pasar a explicar cada uno de ellos de forma muy sencilla y después un pequeño ejemplo para que lo entendáis.

Entry

La clase Entry como ya deberíais de saber, se utiliza para crear una entrada de texto pasándole como primer argumento la ventana o frame que la contiene:

from Tkinter import *

mi_ventana=Tk()
mi_entrada=Entry(mi_ventana)
mi_entrada.pack()




Hasta aquí bien, pero... ¿y si queremos usar lo que esta escrito en la entrada?, para ello usamos el método get:


from Tkinter import *
mi_ventana=Tk()
mi_entrada=Entry(mi_ventana)
mi_entrada.pack()
#ahora escribimos algo en la entrada y lo dejamos escrito en ella (es decir, que no lo borramos)
print mi_entrada.get()

Como véis en la consola se imprime lo que hemos escrito en la entrada.

Button

La clase Button crea un simple botón, ya lo vimos en el anterior post, pero esta vez el botón llamará a una función.

from Tkinter import *
mi_ventana=Tk()
def mi_funcion():
            print "hola mundo"
boton=Button(mi_ventana, text="click", command=mi_funcion)
boton.pack()
Ahora... ¿Y si queremos que los mensajes nos salgan con una ventanita emergente y no desde la consola?, para ello existe un módulo llamado tkMessageBox:

import tkMessageBox

tkMessageBox.showinfo("titulo de la ventana", "contenido de la ventana")

La única diferencia con print es que lo imprime con una ventana y ya esta.

Ejemplo final:

En este ejemplo nos va a salir con una ventanita emergente, lo que hayamos escrito en una entrada después de pulsar un botón.

from Tkinter import *
import tkMessageBox

ventana=Tk()
entrada=Entry(ventana)

def accion_boton():
      contenido=entrada.get()
      tkMessageBox.showinfo("prueba de ventanita", "has escrito " + contenido)

boton=Button(ventana, text="click aqui", command=accion_boton)
entrada.pack()
boton.pack()


Ahora simplemente escribís algo en la entrada de texto, cliqueais el botón y os debe de salir una ventana emergente con lo que habéis escrito.

Y hasta aquí el tutorial de hoy, espero que os haya gustado, un abrazo a tod@s desde aprendepythonvolando, hasta mañana.




6 comentarios:

Dan dijo...

muy interesante aunque el tiempo que no
escribiste me busque la vida para hacerlo
funcionar.

Francisco Dominguez Lerma dijo...

Gracias Dan, un saludo.

Dr Coloso dijo...

Hola Francisco que lindo quedo el blog con el resaltado de sintaxis.
En cualquier cosa que pueda ayudar me avisas.

Francisco Dominguez Lerma dijo...

Gracias Dr Coloso, un saludo.

Maurcio Baez dijo...

buenas, tendar un ejersicio donde se trabajen, menus y frames- si hay formas de alcultar los frames

Unknown dijo...

como puedo crear un boton que tenga como funcion que guarde las cosas escritas en un Text