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)