Uso de el empaquetador Grid

Grid es basicamente traducido al español una rejilla, es decir en forma mas entendible y aplicado aqui:

Es una especie de maquetación donde el espacio de trabajo esta dividido por filas y columnas, parecido a un libro de excel.

Cada una de estas celdas por decirlo de algun modo, nos serviran para contener elementos graficos dentro de nuestra aplicación, de manera que sea mas facil su manejo y colocación.

Veamos un programa de ejemplo:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tkinter import *
import tkMessageBox

def hacer_click():
    try:
        valor=int(entrada1.get())
        valor=valor*5
        etiqueta.config(text=valor)
    except ValueError:
        tkMessageBox.showinfo("Error","Error de entrada de Datos")

def hacer_click2():
    try:
        valor = int(entrada1.get())
        valor = valor * 10
        etiqueta2.config(text=valor)
    except ValueError:
        tkMessageBox.showinfo("Error", "Error de entrada de Datos")


def hacer_click3():
    try:
        valor = int(entrada1.get())
        valor = valor * 15
        etiqueta3.config(text=valor)
    except ValueError:
        tkMessageBox.showinfo("Error", "Error de entrada de Datos")


app=Tk()

vp=Frame(app)

"""Ahora le damos formato a nuestra ventana y para eso utilizamos el metodo grid(), el cual nos va a permitir posicionar los elementos 
graficos dentro de nuestra ventana

otro parametro que utilizaremos sera el margen:
padx(50,50)
lo cual indica 50 pixeles del lado izq y 50 pixeles del lado derecho

luego utilizaremos pady(10,10) que son 10 px en la parte superior y 10 pixeles en la parte inferior"""

vp.grid(column=0, row=0, padx=(50,50), pady=(10,10))

"""Luego vamos a utilizar los metodos columnconfigure() y rowconfigure() los cuales nos van a servir para dar un peso relativo a
todos los elementos que se añadan a la ventana"""

vp.columnconfigure(0,weight=1)
vp.rowconfigure(0,weight=1)

"""Creamos una etiqueta llamada valor y la posicionamos con el metodo grid()"""

etiqueta=Label(vp,text="Valor1")
etiqueta.grid(column=100,row=1)

etiqueta2=Label(vp,text="valor2")
etiqueta2.grid(column=100,row=2)

etiqueta3=Label(vp,text="valor3")
etiqueta3.grid(column=100,row=3)

"""Creamos un boton de ok"""

btn=Button(vp,text="Multiplicar x 5",command=hacer_click)
btn.grid(column=1,row=1)

btn2=Button(vp,text="Multiplicar x 10",command=hacer_click2)
btn2.grid(column=1,row=2)

btn3=Button(vp,text="Multiplicar x 15",command=hacer_click3)
btn3.grid(column=1,row=3)

valor=""
entrada1=Entry(vp,textvariable=valor,width=10)
entrada1.grid(column=2, row=1)

valor2=""
entrada2=Entry(vp,textvariable=valor2,width=10)
entrada2.grid(column=2, row=2)

valor3=""
entrada3=Entry(vp,textvariable=valor3,width=10)
entrada3.grid(column=2, row=3)

app.mainloop()

Salida:


Comentarios