<< Chapter < Page Chapter >> Page >

Figure 2 shows the output produced by running this program.

Figure 2 . Output from Feet to Meters converter program.

Output from Feet to Meters convertor program.

Will discuss in fragments

As is my custom, I will break the program down and discuss it in fragments. I will attempt to explain why the various parts of the programbehave as they do. The first fragment is shown in Listing 1 .

The root

Listing 1 shows a skeleton of the program with most of the code removed to expose the root and the main loop .

Listing 1 . The root.
from tkinter import * root = Tk()root.title("Feet to Meters") root.mainloop()

Figure 3 shows the output produced by running the skeleton code in Listing 1 .

Figure 3 . Output from Listing 1.

Image showing output of code for root only.

According to Hello, Tkinter ,

"To initialize Tkinter, we have to create a Tk root widget. This is an ordinary window, with a title bar and other decoration provided by your window manager. You should only create one root widget for each program, and it must be created before any other widgets."

(Note that according to TkDocs , the name of the module was changed from Tkinter to tkinter with the release of Python 3.0.)

The empty window that you see in Figure 3 behaves like a standard Windows window on my machine. The three buttons in the upper-right corner behave asexpected while the menu icon in the upper-left corner behaves as expected. (The icon in the upper-left corner appears to be the TCL feather logo.)

Import statements

TkDocs has this to say about the two import statements at the top of Listing 9 ,

"These two lines tell Python that our program needs two modules. The first, "tkinter", is the standard binding to Tk, which when loaded also causes the existing Tk library on your system to be loaded. The second, "ttk", is Python's binding to the newer "themed widgets" that were added to Tk in 8.5."

That document goes on to provide a very interesting TIP regarding the use of the asterisk (*) with the first import statement and the non-use of the asteriskwith the second import statement. I will leave it as an exercise for the student to examine that material.

The calculate function

I'm going to skip over the calculate function (see Listing 9 ) at this point and return to discuss it in context later.

Add a Frame widget

The first statement in Listing 2 creates a Frame widget and places it in the root .

Listing 2 . Add a Frame widget.
mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S))mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1)

According to TkDocs ,

"Next, we create a frame widget, which will hold all the content of our user interface, and place that in our main window. The "columnconfigure"/"rowconfigure" bits just tell Tk that if the main window is resized, the frame should expand to take up the extra space."

According to Tkinter 8.5 reference: a GUI for Python ,

"Like the Tkinter Frame widget, the ttk.Frame widget is a rectangular container for other widgets."

That document goes on to explain that the first argument to Frame is the parent of the Frame . In this case, the frame will be a child of root . After that, you can enter any of about nine different options, one of which is padding .

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