Como usar TextBox o Entry con Tkinter/Python


Vamos a hacer una ventana con 3 TextBox y un boton usando Tkinter en Python.

Para hacer usar los TextBox vamos a usar una variable extra llamada StringVar que va a servir para almacenar los valores del TextBox al cual le asignemos el StringVar.

Asi como existe StringVar para textos tambien existe.

  • StringVar() : Almacena Text
  • IntVar() : Almacena Numeros Enteros
  • DoubleVar() : Almacena Numeros coma Flotante o Decimales

Si agregamos Numeros en un String var estos se tomaran como Texto y si agregamos Texto en IntVar o DoubleVar nos lanzara un error.

Ventana

Para la creacion de la ventana vamos a usar el formato de Fila/Columna y la organizacion de los elementos va a ser de la siguiente manera.

Column=0Column=1
Row=0Label 1 Entry 1
Row=1Label 2 Entry 2
Row=2 Label 3Entry 3
Row=3Button

Codigo

A continuacion el codigo de la ventana de ejemplo.

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("Butones y TextBox")
root.geometry("480x270") # Definimos las medidas de la ventana principal

# Funcion que imprime o muestra los valores en la consola o terminal
def print_values():
	print("Nombre:", entry_str1.get())
	print("Apellidos:", entry_str2.get())
	print("Direccion:", entry_str3.get())
	entry_str1.set("") # Borrar datos
	entry_str2.set("")
	entry_str3.set("")


frame1=ttk.Frame(root, padding=10)
frame1.grid()

ttk.Label(frame1, text="Nombre").grid(column=0, row=0)

entry_str1 = StringVar() # Definimos un String Var
textbox1 = ttk.Entry(frame1, textvariable=entry_str1) # Creamos un TextBox y en el parametro textvariable le asignamos el entry_str1
textbox1.grid(column=1,row=0)

ttk.Label(frame1, text="Apellidos").grid(column=0, row=1) # Creamos un Label

entry_str2 = StringVar()
textbox2 = ttk.Entry(frame1, textvariable=entry_str2) # Creamos un TextBox 2 y en el parametro textvariable le asignamos el entry_str2
textbox2.grid(column=1,row=1)

ttk.Label(frame1, text="Direccion").grid(column=0, row=2) # Creamos un Label

entry_str3 = StringVar()
textbox3 = ttk.Entry(frame1, textvariable=entry_str3) # Creamos un TextBox 3 y en el parametro textvariable le asignamos el entry_str2
textbox3.grid(column=1,row=2)


btn1 = ttk.Button(frame1, text="Guardar", command=print_values) # boton 1 que manda a imprimir los valores en la funcion "print_values"
btn1.grid(column=1,row=3)

root.mainloop()

El resultado es el siguiente.

Y cuando rellenamos los valores y damos click en el boton guadar se muestran los datos en la terminal.

Leave a comment