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=0 | Column=1 | |
Row=0 | Label 1 | Entry 1 |
Row=1 | Label 2 | Entry 2 |
Row=2 | Label 3 | Entry 3 |
Row=3 | Button |
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.