Tkinter has three mechanisms for geometry management: place
, pack
, and grid
.
The place
manager uses absolute pixel coordinates.
The pack
manager places widgets into one of 4 sides. New widgets are placed next to existing widgets.
The grid
manager places widgets into a grid similar to a dynamically resizing spreadsheet.
The most common keyword arguments for widget.place
are as follows:
x
, the absolute x-coordinate of the widgety
, the absolute y-coordinate of the widgetheight
, the absolute height of the widgetwidth
, the absolute width of the widgetA code example using place
:
class PlaceExample(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.grid()
top_text=Label(master,text="This is on top at the origin")
#top_text.pack()
top_text.place(x=0,y=0,height=50,width=200)
bottom_right_text=Label(master,text="This is at position 200,400")
#top_text.pack()
bottom_right_text.place(x=200,y=400,height=50,width=200)
# Spawn Window
if __name__=="__main__":
root=Tk()
place_frame=PlaceExample(root)
place_frame.mainloop()
widget.pack
can take the following keyword arguments:
expand
, whether or not to fill space left by parentfill
, whether to expand to fill all space (NONE (default), X, Y, or BOTH)side
, the side to pack against (TOP (default), BOTTOM, LEFT, or RIGHT)The most commonly used keyword arguments of widget.grid
are as follows:
row
, the row of the widget (default smallest unoccupied)