We use Tkinter frames to group bunches of related widgets together. When we have done this, we only have to think about how we want the frames arranged because their contents are already taken care of.
Execute the program shown in the usual way.
# frame_1.py #>>>>>>>>>>>>>> from Tkinter import * root = Tk() root.config(bg="black") root.title("It's a Frame-up") #================================================ # frame_1 and her motley little family frame_1 = Frame(root, bg="red", border = 4, relief="raised") frame_1.grid(row=0, column=0, columnspan=2) redbutton_1 = Button(frame_1, text="Red",bg ="orange", fg="red") redbutton_1.grid(row=0, column=1) greenbutton_1 = Button(frame_1, text="Brown",bg ="pink", fg="brown") greenbutton_1.grid(row=1, column=2) bluebutton_1 = Button(frame_1, text="Blue",bg ="yellow", fg="blue") bluebutton_1.grid(row=0, column=3) #================================================ # frame _2 and her neat blue home frame_2 = Frame(root, bg="blue", border = 10, relief="sunken") frame_2.grid(row=1, column=0) redbutton_2 = Button(frame_2, text="Green",bg ="brown", fg="green") redbutton_2.grid(row=0, column=1) greenbutton_2 = Button(frame_2, text="Brown",bg ="green", fg="brown") greenbutton_2.grid(row=2, column=2) bluebutton_2 = Button(frame_2, text="Pink",bg ="gray", fg="black") bluebutton_2.grid(row=3, column=3) #================================================ # frame_3 with her friendly green home frame_3 = Frame(root, bg="green", border = 20, relief="groove") frame_3.grid(row=1, column=1) redbutton_3 = Button(frame_3, text="Purple",bg ="white", fg="red") redbutton_3.grid(row=0, column=3) greenbutton_3 = Button(frame_3, text="Violet",bg ="cyan", fg="violet") greenbutton_3.grid(row=2, column=2) bluebutton_3 = Button(frame_3, text="Cyan",bg ="purple", fg="blue") bluebutton_3.grid(row=3, column=0) root.mainloop()
The position of frames is specified relative to the "root" window.
Inside each frame, the widgets that belong to it are arranged without reference to anything outside that frame.
For instance, the specification redbutton_1.grid(row=0, column=1)
places the red_button
in row=0
and column=1
in the grid geometry that is the universe of the red frame frame_1
. The red button is completely unaware of the world outside her frame.
18.218.224.226