<< Chapter < Page Chapter >> Page >

According to Padding at TkDocs,

"Normally, each column or row will be directly adjacent to the next, so that widgets will be right next to each other. This is sometimes what you want (think of a listbox and its scrollbar), but often you want some space between widgets. In Tk, this is called padding, and there are several ways you can choose to add it."

One of the ways to achieve the desired space between widgets is by using the syntax shown in the padding argument of Listing 2 . This syntax inserts spaces (in units of pixels) on the four sides of the frame in the order west, north, east, and south or left, top, right, and bottom. (Note that the integers in Listing 2 are not separated by commas.)

The grid geometry manager

Once you have a Frame widget, you can call various methods on it. One of those methods is grid as shown by the second line of code in Listing 2 .

According to The Grid Geometry Manager at TkDocs,

"Grid is one of several geometry managers available in Tk, but it's mix of power, flexibility and ease of use, along with its natural fit with today's layouts (that rely on alignment of widgets) make it the best choice for general use. There are other geometry managers: "pack" is also quite powerful, but harder to use and understand; "place" gives you complete control of positioning each element; we'll see even widgets like paned windows, notebooks, canvas and text can act as geometry managers."

Columns and rows

With the Grid geometry manager, a container of widgets such as the root or the Frame is subdivided into a grid of cells. The locations of widgets in the container are specified by columnand row numbers.

According to Columns and Rows at TkDocs,

"Column and row numbers must be integers, with the first column and row starting at 0. You can leave gaps in column and row numbers (e.g. column 0, 1, 2, 10, 11, 12, 20, 21), which is handy if you plan to add more widgets in the middle of the user interface at a later time. The width of each column (or height of each row) depends on the width or height of the widgets contained within the column or row. This means when sketching out your user interface, and dividing it into rows and columns, you don't need to worry about each column or row being equal width."

The second statement in Listing 2 shows that the Frame is placed in column 0 and row 0 (the upper-left corner) of the root .

A sticky situation

The sizes of the cells in a grid are determined by the sizes of the widgets placed in them. Therefore, the width of the cells in a column will be at leastas wide as the widest widget in the column and the height of the cells in a row will be at least as high as the tallest widget placed in the row.

By default, if a widget is smaller than the cell in which it is placed, it will be placed in the upper-left corner of the cell. The sticky argument can be used to specify something other than the default. The value ofthe sticky argument consists of the compass directions N, S, E, and W as shown in the second statement of Listing 2 . (Note that they are separated by commas.)

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Itse 1359 introduction to scripting languages: python. OpenStax CNX. Jan 22, 2016 Download for free at https://legacy.cnx.org/content/col11713/1.32
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?

Ask