Python and Tkinter Programming
Books on graphical user interfaces (GUI) have an unfair advantage over typical computer books. Their contents have immediate positive impact on everything they touch, from the popularity of the underlying language to the careers of the developers they reach. Even mediocre GUI books have a beneficial impact.John E. Grayson's deeply thought out, maturely writtenPython and Tkinter Programmingdoes the double service of being a excellent object-oriented GUI book and communicating the standard for Tk-widget-based GUI development to the Python community. The short-term result will be a rapid expansion in the popularity of Python itself; the long-term result will be a new batch of supportable, reusable code.Grayson begins with a three-line "hello world" variant that works out of the box. He moves quickly to a variety of GUI calculators to exhibit buttons and label widgets. Familiarity with Tk from Tcl/Tk or Perl/Tk is helpful but not essential. The convenient bonus of the Python implementation is its inclusion in the standard Python release, of which the current stable version is 1.5.Nearly half of the book is dedicated to Tk widget implementations and constitutes a translation of Tk into Python. By itself, it is a good teaching tool for students of Python who already know Tk in one of its other manifestations. Appendices covering build/install issues Python megawidgets and a Tkinter reference manual comprise nearly 40 percent of the book, leaving a brief 15 percent for the introductory tutorial, application building, and performance tuning. A late chapter on threads suggests a broad range of client/server applications, but is too brief to be more than a tease. Throughout the text, code snippets are presented in coherent blocks with annotations sensibly appearing as clearly numbered end notes to those blocks.Grayson presents cross-platform issues with maturity and candor. While Python for Windows and Macintosh environments is stable, he asserts, the Tkinter module does not have the same global look-and-feel control. Fonts and colors are dictated partially by the platform OS.The subtle challenge for developers is to develop supportable code in the breakneck boss-pleasing, GUI-driven environment. Grayson's elegant introduction to Tkinter advances the subtext of supportability noticeably farther along. By documenting Tkinter, he will push a group of laggard hackers to learn object-oriented principles. And that may be his lasting contribution.--Peter Leopold