ThePlace geometry manager is the simplest of the three general geometry managers provided in Tkinter. It allows you explicitly set the position and size of a window, either in absolute terms, or relative to another window. You can access theplace manager through theplace() method which is available for all standard widgets. It is usually not a good idea to useplace() for ordinary window and dialog layouts; its simply too much work to get things working as they should. Use thepack() orgrid() managers for such purposes.Syntax:
widget.place(relx = 0.5, rely = 0.5, anchor = CENTER)
Note : place() method can be used withgrid() method as well as withpack() method.Code #1:
Python3# Importing tkinter modulefromtkinterimport*fromtkinter.ttkimport*# creating Tk windowmaster=Tk()# setting geometry of tk windowmaster.geometry("200x200")# button widgetb1=Button(master,text="Click me !")b1.place(relx=1,x=-2,y=2,anchor=NE)# label widgetl=Label(master,text="I'm a Label")l.place(anchor=NW)# button widgetb2=Button(master,text="GFG")b2.place(relx=0.5,rely=0.5,anchor=CENTER)# infinite loop which is required to# run tkinter program infinitely# until an interrupt occursmainloop()
Output:
When we usepack() orgrid() managers, then it is very easy to put two different widgets separate to each other but putting one of them inside other is a bit difficult. But this can easily be achieved byplace() method. Inplace() method, we can use in_ option to put one widget inside other.Code #2:
Python3# Importing tkinter modulefromtkinterimport*fromtkinter.ttkimport*# creating Tk windowmaster=Tk()# setting geometry of tk windowmaster.geometry("200x200")# button widgetb2=Button(master,text="GFG")b2.pack(fill=X,expand=True,ipady=10)# button widgetb1=Button(master,text="Click me !")# This is where b1 is placed inside b2 with in_ optionb1.place(in_=b2,relx=0.5,rely=0.5,anchor=CENTER)# label widgetl=Label(master,text="I'm a Label")l.place(anchor=NW)# infinite loop which is required to# run tkinter program infinitely# until an interrupt occursmainloop()
Output: In below images notice that one button is placed inside the other.
