Prerequisites: Tkinter
Tkinter can support the creation of more than one widget in the same frame. Not just this it also supports a mechanism to align them relative to each other. One of the easiest ways of aligning the different widgets in the Tkinter is through grid manager. Apart from aligning various widgets, the grid manager can also be used for aligning the numerous frames.
In this article, we will be discussing the approach of aligning multiple frames with Grid Manager.
For this first the frames needs to be defined, and then they need to be aligned using grid().
Syntax:
frame1=LabelFrame(app, text=”#Text you want to give in frame”)
frame1.grid(row=#Row value, column=#Column value)
Function Used
- LabelFrame() is used to create a frame
- grid() is used to apply grid manager to the widgets created
Approach
- Import module
- Create a GUI app using tkinter
- Give a title to the app.(optional)
- Now, create the first frame, i.e., frame1
- Display the frame1 in grid manager by specifying row and column values.
- Further, create a widget you wish to get display in the frame1.
- Display the widget you made in previous step.
- For creating more frames, repeat from steps 4 to 7. Repeat these steps n number of times for creating n number of frames. Don’t forget to change the row value and column value for every frame. You can change the row value and column value of the frames according to the given image.
- Finally, make the loop for displaying the GUI app on the screen.
Program:
Python
# Import the library tkinter from tkinter import * # Create a GUI app app = Tk() # Give a title to your app app.title( "Vinayak App" ) # Constructing the first frame, frame1 frame1 = LabelFrame(app, text = "Fruit" , bg = "green" , fg = "white" , padx = 15 , pady = 15 ) # Displaying the frame1 in row 0 and column 0 frame1.grid(row = 0 , column = 0 ) # Constructing the button b1 in frame1 b1 = Button(frame1, text = "Apple" ) # Displaying the button b1 b1.pack() # Constructing the second frame, frame2 frame2 = LabelFrame(app, text = "Vegetable" , bg = "yellow" , padx = 15 , pady = 15 ) # Displaying the frame2 in row 0 and column 1 frame2.grid(row = 0 , column = 1 ) # Constructing the button in frame2 b2 = Button(frame2, text = "Tomato" ) # Displaying the button b2 b2.pack() # Make the loop for displaying app app.mainloop() |
Output: