<< Chapter < Page Chapter >> Page >

Many different combinations of N, S, E, and W can be used to control the placement of the widget in the cell. A good explanation is provided in Layout within the Cell at TkDocs. The combination used in the second statement of Listing 2 causes the Frame to be stretched in all four directions so as to be stuck to all four sides of the root . In other words, the Frame completely fills the available space within the root container.

The last two statements in Listing 2 were explained by According to TkDocs above.

StringVar

To make a long story short, the StringVar objects shown in Listing 3 are used to connect the string values for feet and meters to the textvariable arguments of an Entry widget and a Label widget, which you will see later.

(If you connect a widget to a StringVar object using a textvariable argument, a change in the contents of either will cause a corresponding change in the other. This isdiscussed in some detail at 25.1.6.4. Coupling Widget Variables .)

Listing 3 . StringVar objects.
feet = StringVar() meters = StringVar()

The Entry widget

In the initial design stages of the GUI, the author indicates that the widgets will be placed in three columns and three rows.

The first statement in Listing 4 creates a new widget of the class Entry and saves the object's reference in the variable named feet_entry . According to The Tkinter Entry Widget ,

"The Entry widget is a standard Tkinter widget used to enter or display a single line of text."

The first argument is the parent -- in this case mainframe . This is followed by many possible optional arguments, one of which is width .

Listing 4 . The Entry widget.
feet_entry = ttk.Entry(mainframe, width=7, textvariable=feet) feet_entry.grid(column=2, row=1, sticky=(W, E))

The width argument

The Tkinter Entry Widget describes the width argument as follows:

"Width of the entry field, in character units. Note that this controls the size on screen; it does not limit the number of characters that can be typed into the entry field. The default width is 20 character."

The first statement in Listing 4 sets the width to seven characters.

The textvariable argument

The Tkinter Entry Widget describes the textvariable argument as follows:

"Associates a Tkinter variable (usually a StringVar) to the contents of the entry field."

This argument is set equal to feet from Listing 3 . From this point forward, values entered into the data entry field shown in Figure 2 will be saved in the StringVar named feet . This makes the value available to the calculate function that will be discussed later.

Make the Entry field visible

The author of the program explains that the first statement in Listing 4 creates the Entry widget but does not make it visible in the GUI. In order to make it visible, you must tell Tk where to place it relative to other widgets. Thisis accomplished by the call to grid in the second statement in Listing 4 , which places the Entry widget in column 2 and row 1. (Note that the author seems to have skipped column 0 and row 0 as described earlier .)

The sticky parameter in Listing 4 instructs Tk to stretch the Entry widget horizontally and make it touch both sides of the cell. (Note that manually stretching the size of the root on the screendoes not stretch the size of the Frame or the widgets contained in the Frame.)

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