studies. In the next section of this book, we’ll also learn how to build user interfaces
that run in web browsers—a very different concept, but another option for interface
design.
Keep in mind, too, that even if you don’t see a GUI example in this book that looks
very close to one you need to program, you’ve already met all the building blocks.
Constructing larger GUIs for your application is really just a matter of laying out hier-
archical composites of the widgets presented in this part of the text.
For instance, a complex display might be composed as a collection of radio buttons,
listboxes, scales, text fields, menus, and so on—all arranged in frames or grids to ach-
ieve the desired appearance. Pop-up top-level windows, as well as independently run
GUI programs linked with Inter-Process Communication (IPC) mechanisms, such as
pipes, signals, and sockets, can further supplement a complex graphical interface.
Moreover, you can implement larger GUI components as Python classes and attach or
extend them anywhere you need a similar interface device; see PyEdit’s role in PyView
and PyMailGUI for a prime example. With a little creativity, tkinter’s widget set and
Python support a virtually unlimited number of layouts.
Beyond this book, see the tkinter documentation overview in Chapter 7, the books
department at Python’s website at http://www.python.org, and the Web at large. Finally,
if you catch the tkinter bug, I want to again recommend downloading and experiment-
ing with the packages introduced in Chapter 7—especially Pmw, PIL, Tix, and ttk (Tix
and ttk are a standard part of Python today). Such extensions add additional tools to
the tkinter arsenal that can make your GUIs more sophisticated, with minimal coding.
Where to Go from Here| 767