tkinter
Tkinter Geometry Managers
Buscar..
Introducción
Hay tres administradores de geometría para colocar los widgets: pack()
, grid()
y place()
.
paquete()
El administrador de geometría de pack()
organiza los widgets en bloques antes de colocarlos en el widget principal. Utiliza las opciones de fill
, expand
y side
.
Sintaxis
widget.pack(option)
Llenar
Determina si el widget mantiene el espacio mínimo necesario o ocupa cualquier espacio adicional que se le asigne. Atributos: NINGUNO (predeterminado), X (rellenar horizontalmente), Y (rellenar verticalmente), o AMBOS (rellenar tanto horizontal como verticalmente).
Expandir
Cuando se establece en SÍ, el widget se expande para llenar cualquier espacio no utilizado en el elemento primario del widget. Atributos: SI, NO.
Lado
Determina de qué lado del elemento primario del widget se empaqueta. Atributos: TOP (predeterminado), BOTTOM, LEFT o RIGHT.
Ejemplo
from tkinter import *
root = Tk()
btn_fill = Button(root, text="Button")
btn_fill.pack(fill=X)
btn_expand = Button(root, text="Button")
btn_expand.pack(expand=YES)
btn_side = Button(root, text="Button")
btn_side.pack(side=RIGHT)
root.mainloop()
Resultado
cuadrícula()
El administrador de geometría grid()
organiza los widgets en una estructura similar a una tabla en el widget principal. El widget maestro se divide en filas y columnas, y cada parte de la tabla puede contener un widget. Utiliza column
, columnspan
, ipadx
, ipady
, padx
, pady
, row
, rowspan
y sticky
.
Sintaxis
widget.grid(options)
Columna
La columna para colocar el widget. La columna predeterminada es 0, que es la columna más a la izquierda.
Columnspan
Cuantas widgets de columnas ocupa. El valor predeterminado es 1.
Ipadx
Cuántos píxeles para rellenar el widget horizontalmente dentro de los bordes del widget.
Ipady
Cuántos píxeles para rellenar el widget verticalmente dentro de los bordes del widget.
Padx
Cuántos píxeles para rellenar el widget horizontalmente fuera de los bordes del widget.
Pady
Cuántos píxeles para rellenar el widget verticalmente fuera de los bordes del widget.
Fila
La fila para colocar el widget. La fila predeterminada es 0, que es la columna superior.
Envergadura
Cuántas filas ocupa el widget. El valor predeterminado es 1.
Pegajoso
Cuando el widget es más pequeño que la celda, sticky
se usa para indicar a qué lados y esquinas de la celda se adhiere el widget. La dirección se define por las direcciones de la brújula: N, E, S, W, NE, NW, SE y SW y cero. Estas podrían ser una concatenación de cadenas, por ejemplo, NESW hace que el widget ocupe toda el área de la celda.
Ejemplo
from tkinter import *
root = Tk()
btn_column = Button(root, text="I'm in column 3")
btn_column.grid(column=3)
btn_columnspan = Button(root, text="I have a columnspan of 3")
btn_columnspan.grid(columnspan=3)
btn_ipadx = Button(root, text="ipadx of 4")
btn_ipadx.grid(ipadx=4)
btn_ipady = Button(root, text="ipady of 4")
btn_ipady.grid(ipady=4)
btn_padx = Button(root, text="padx of 4")
btn_padx.grid(padx=4)
btn_pady = Button(root, text="pady of 4")
btn_pady.grid(pady=4)
btn_row = Button(root, text="I'm in row 2")
btn_row.grid(row=2)
btn_rowspan = Button(root, text="Rowspan of 2")
btn_rowspan.grid(rowspan=2)
btn_sticky = Button(root, text="I'm stuck to north-east")
btn_sticky.grid(sticky=NE)
root.mainloop()
Resultado
lugar()
El administrador de place()
organiza los widgets colocándolos en una posición específica en el widget principal. Este gestor de la geometría utiliza las opciones anchor
, bordermode
, height
, width
, relheight
, relwidth
, relx
, rely
, x
e y
.
Ancla
Indica donde está anclado el widget. Las opciones son direcciones de la brújula: N, E, S, W, NE, NW, SE o SW, que se relacionan con los lados y las esquinas del widget principal. El valor predeterminado es NW (la esquina superior izquierda del widget)
Bordermode
Bordermode tiene dos opciones: INSIDE
, que indica que otras opciones se refieren al interior del padre, (Ignorar los bordes del padre) y OUTSIDE
, que es lo contrario.
Altura
Especifique la altura de un widget en píxeles.
Anchura
Especifique el ancho de un widget en píxeles.
Relheight
La altura como flotante entre 0.0 y 1.0, como una fracción de la altura del widget principal.
Relwidth
Ancho como flotante entre 0.0 y 1.0, como una fracción del ancho del widget principal.
Relx
Desplazamiento horizontal como flotante entre 0.0 y 1.0, como una fracción del ancho del widget principal.
Confiar
Desplazamiento vertical como flotante entre 0.0 y 1.0, como una fracción de la altura del widget principal.
X
Desplazamiento horizontal en píxeles.
Y
Desplazamiento vertical en píxeles.
Ejemplo
from tkinter import *
root = Tk()
root.geometry("500x500")
btn_height = Button(root, text="50px high")
btn_height.place(height=50, x=200, y=200)
btn_width = Button(root, text="60px wide")
btn_width.place(width=60, x=300, y=300)
btn_relheight = Button(root, text="Relheight of 0.6")
btn_relheight.place(relheight=0.6)
btn_relwidth= Button(root, text="Relwidth of 0.2")
btn_relwidth.place(relwidth=0.2)
btn_relx=Button(root, text="Relx of 0.3")
btn_relx.place(relx=0.3)
btn_rely=Button(root, text="Rely of 0.7")
btn_rely.place(rely=0.7)
btn_x=Button(root, text="X = 400px")
btn_x.place(x=400)
btn_y=Button(root, text="Y = 321")
btn_y.place(y=321)
root.mainloop()
Resultado