Curso de TKINTER desde cero

El widget Entry() de Tkinter

Capítulo 6: Formularios con el widget Entry() y contraseñas protegidas

En este capítulo te enseñaré a crear un elemento de formulario, Entry() que es parecido al input text de HTML.
Pero antes de empezar veamos la solución al ejercicio del capítulo anterior.

Para mostrar el texto a la derecha:

from tkinter import *
root = Tk()

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

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

root.mainloop()
Botón llamando a función en Tkinter

Para mostrar el texto a la izquierda:

from tkinter import *
root = Tk()

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

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

root.mainloop()
Botón llamando a función en Tkinter

¿Cómo crear una entrada de datos en Tkinter?

Ahora si, empecemos con el capítulo. Pasemos a ver como crear una entrada de datos.

Para crear una entrada de texto, tenemos el tipo de formulario y widget Entry() que es como el <input type="text"> de HTML.
Mira cómo se crea:

from tkinter import *
root = Tk()

entrada = Entry(root)
entrada.grid(row=0, column=0)

def click_boton():
	texto = Label(root, text="¡Se envío correctamente!").grid(row=0, column=0)

boton1 = Button(root,
				text="Envíar",
				bg="red",
				padx=50,
				pady=10,
				command=click_boton).grid(row=1, column=0)

root.mainloop()
Botón llamando a función en Tkinter

En este Entry() podemos escribir lo que queramos y enviarlo a nuestro programa con solo apretar el botón.

Botón con Entry() en Tkinter

En este caso, se reemplaza con el grid() el widget. Esto ocurre al hacer click. En ese momento, se envía la información escrita y se sustituye por el mensaje que ocupa su misma posición en el grid().

Si quieres evitar esto y crear un nuevo espacio para el texto, seguro que ya sabes como hacerlo, tienes que indicar otras posiciones en el grid().

Veamos cómo hacer algo con el texto introducido, vamos a obtenerlo y a mostrarlo en el programa:

from tkinter import *
root = Tk()

entrada = Entry(root)
entrada.grid(row=0, column=0)

def click_boton():
	texto = Label(root,
					text=f'Se almacenó "{entrada.get()}" correctamente').grid(row=2, column=0)

boton1 = Button(root,
				text="Envíar",
				bg="red",
				padx=50,
				pady=10,
				command=click_boton).grid(row=1, column=0)

root.mainloop()
Botón llamando a función en Tkinter

Si le das al botón, el programa obtiene el texto y lo utiliza.

Texto obtenido de un Entry() mediante get()

Al poder almacenar esto en una variable, se abre un mundo de posibilidades.

¿Cómo poner asteriscos en formularios de contraseñas de Tkinter?

Veamos una cosa más y terminemos con el capítulo.
Si ponemos el atributo show, reemplaza las letras por lo que le pongamos, de ese modo, por ejemplo, podríamos hacer un Entry() para contraseñas.

from tkinter import *
root = Tk()

entrada = Entry(root, width=25, show="*")
entrada.insert(0, "Escriba aquí...")
entrada.grid(row=0, column=0)

def click_boton():
	texto = Label(root,
				text=f'Se almacenó "{entrada.get()}" correctamente').grid(row=2, column=0)

boton1 = Button(root,
				text="Envíar",
				bg="red",
				padx=75,
				pady=10,
				command=click_boton).grid(row=1, column=0)

root.mainloop()

Todo lo que escribas en este Entry() va a estar protegido visualmente cambiando los caracteres por asteriscos.

Texto contraseñas en Entry() de Tkinter

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.