Python GUI Cajas de Texto

Otro widget o control comúnmente utilizado en el diseño de interfaces gráficas de usuario (GUI) en Python es el Entry que nos permite crear una caja en la que el usuario puede introducir una línea de texto.

Uso del widget Entry

El uso de Entry no varia en gran medida de lo visto anteriormente, para empezar nos interesa almacenar la información que el usuario introduce para ello usaremos un objeto StringVar() y lo asignaremos a textvariable.
 nombre = StringVar()
 Entry(root, textvariable=nombre).pack()
Para acceder al valor del objeto StringVar usamos el método get(), set() para asignar un texto nuevo.

Uso de expand y fill

Seguimos viendo lo que podemos hacer con el método pack y esta ocasión vemos el atributo expand que nos permite expandir el control o permitir que este ocupe todo el espacio disponible en la ventana, el atributo fill le indica al control que debe ocupar todo el espacio disponible horizontal o vertical.

expand admite los valores: YES o NO

fill admite los valores: X, Y, BOTH, NONE


Enlazar un control a eventos

Si queremos reaccionar cuando ocurre un evento en un widget determinado podemos usar el método bind con el cual podemos indicar a cual evento queremos reaccionar y cual será la función que se ejecute cuando de dispare dicho evento.

Para nuestro ejemplo utilizaremos el evento <Key-Return> que se produce al presionar la tecla enter, existen muchos otros eventos que veremos en detalle más adelante.
 from tkinter import *
 
 def salida(event):
     print(nombre.get())
 
 root = Tk()
 nombre = StringVar()
 
 txt = Entry(root, textvariable=nombre)
 txt.pack(expand=YES, fill=X)
 txt.bind('<Key-Return>', salida)
 
 root.mainloop()
Al ejecutar este código veremos una ventana con una caja de texto en la que podemos escribir, al presionar la tecla enter se muestra el mensaje escrito en la salida.

python gui entry

Descarga Python GUI Entry

Comentarios

  1. Hola cómo puedo hacer para mostrar un texto desde un metodo? es decir, que la Entry sea como publica o algo así

    ResponderEliminar

Publicar un comentario

Temas relacionados

Entradas populares de este blog

tkinter Grid

tkinter Canvas

Histogramas OpenCV Python

Python Binance API