12.8. Where to Go from Here
This concludes the GUI section of this book, but this is not an end to the book's GUI coverage. If you want to learn more about GUIs, be sure to see the Tkinter examples that appear later in this book and are described at the start of this chapter. PyMailGUI, PyCalc, PyForm, and PyTree provide additional GUI case studies. In the next section of this book, we'll also learn how to build user interfaces that run in web browsersa very different concept, but another option for simple 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 hierarchical 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 onall arranged in frames or grids to achieve 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 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 documentation and books departments at Python's web site at http://www.python.org. I would plug Tkinter-related texts here, but I suspect that the offerings in this department will expand during the shelf life of this book. Finally, if you catch the Tkinter bug, I want to again recommend downloading and experimenting with the packages introduced in Chapter 8especially Pmw, Tix, and PIL (Tix is a standard part of Python on Windows today). Such extensions add additional tools to the Tkinter arsenal that can make your GUIs more sophisticated, with minimal coding.