Combining pack and grid

It is not possible to combine pack and grid within the same container. If you attempt this the geometry managers will both attempt to control the screen geometry resulting in the screen failing to load. If you choose to combine the two, you may use pack to display a container (for example, a frame), which then utilizes the grid command to place the widgets within a grid located within the frame.

How to do it…

In the following example, we will create a frame and load it using the pack command. We will then arrange several widgets using the grid command identical to the previous example whose parent is the frame. Enter the following commands:


1 % frame .f -borderwidth 3 -relief raised
.f

2 % entry .f.e -width 10
.f.e

3 % label .f.1 -text ONE
.f.1

4 % label .2 -text TWO
.f.2

5 % label .f.3 -text THREE
.f.3

6 % button .f.b -text Exit -command exit
.f.b

7 % pack .f
8 % grid .f.e -row 0 -column 2
9 % grid .f.1 -row 1 -column 0
10 % grid .f.2 -row 1 -column 1
11 % grid .f.3 -row 1 -column 2
12 % grid .f.b -row 2 -column 2

At this point, your window should look like the following:

How to do it…

How it works…

We are able to combine the two geometry managers due to the fact that the container of the frame is the window itself, while the container of the grid is the frame. In this manner, the geometry managers are not competing for control of the geometry.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.218.151.44