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, maturely written Python and Tkinter Programming does 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 per cent of the book, leaving a brief 15 per cent 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 candour. 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 colours are dictated partially by the platforms 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
Python is an interpreted, object-oriented programming language similar to Tcl and Perl. This text aims to give the programmer a jump start in developmeing Tkinter and Python applications.