Python and Tkinter Programming
Author: John E. Grayson
Price: $49.95 US
Reviewer: Phil Hughes
Let's start with the conclusion: if you intend to work with Tkinter, buy this book. If you need to do graphical programming in Python but don't know what tools to use, buy this book. Now that the hard part of the review is done, let me give you a little background on my Tk experiences, and then get on to the details of the book.
About five years ago, armed with John Osterhout's book, Tcl and the TK Toolkit I started to play with Tcl and Tk. While I appreciated how you could toss together something very quickly, I was also very frustrated by Tcl. It just didn't feel like a real programming language. There was always the need for a “trick” to accomplish what I wanted. Because of this bad feeling, I never did much with Tcl and Tk.
Last year, when I interviewed Guido van Rossum, I asked him about toolkits for doing graphical programming in Python, and he recommended Tkinter. He also pointed out that the current problem was a lack of good documentation. Python and Tkinter has addressed that problem, and done a fine job as well.
The book assumes the reader has a basic knowledge of Python, but requires no knowledge of Tcl or Tk. The first part, only 28 pages, is a quick review of Python, an intro to Tkinter and a sample application. Thus, by page 28, you will be convinced that you, too, could write a calculator or two. Even in this introductory chapter, the author does an excellent job of discussing the various sections of the code.
The next part, titled “Displays”, goes on for close to 300 pages. This is the meat of the book, covering all the things you will need to build your application. First, widgets are covered, including Pmw (Python MegaWidgets) and then geometry managers. By the end of these two chapters, you should be pretty comfortable putting up any sort of widget you want and getting the screen organized.
Each concept is presented with some explanatory text, some code and a screen shot. The code is on track for teaching you the next thing you need to know, rather than being just a book of sample code. Part of the credit goes to Python itself, where you can write something useful in a few lines, but the author has done a good job of breaking up the material so that a concept can be presented in only a few pages.
The next chapter, titled “Using Classes, Composites and Special Widgets”, gets you seriously using structured programming techniques to develop your application. While this is a little scary for those of us who grew up on FORTRAN and moved to C, it is well worth embracing if you want to be a good Python programmer.
The next four chapters take you through drawing all sorts of objects. First there are “Dialogs and Forms”, where you finish up with a really fancy calculator. Next is “panels and Machines”, where you learn how to do very complex graphics models. A digital multimeter complete with rotary selector switch is one such example. The next two chapters cover more free-form drawing and finally charts and graphs. The part ends with a short chapter on the window manager.
Part three, titled “Putting it All Together...”, is a catch-all for the other things you need to know. This includes extending Python, debugging and issues of performance and style. The part ends with a chapter on distributing Tkinter applications.
The remainder of the book, over 250 pages, consists of appendices. This seems to be the tradition for most Python books. It makes sense, due to the lack of printed reference documentation on Python.
The first appendix is called “Mapping Tk to Tkinter”. If you have an existing application in Tk that you want to port, this is where you will find all the answers. It can also provide some help if you are familiar with Osterhout's book and want a quick translation guide.
Appendix B is a Tkinter reference. The reference includes descriptions of the classes, along with detailed descriptions of all options. When appropriate, graphics are also included.
Appendix C is a reference on Python megawidgets. Like the previous appendix, the descriptions are detailed and graphics are included when needed.
Appendix D covers building and installing Python and Tkinter. Information is included for UNIX and MS-Windows, with a brief mention of MacOS.
The appendices end with three short sections: Events and keysyms, Cursors and References. While each appendix is very brief, it covers important topics.
The book ends with a comprehensive index. As I said in the beginning, if you are going to work with Tkinter, buy this book. I'm not saying this because it is the only book out there. It is well organized, easy to read and offers a great tutorial combined with a comprehensive reference.
Practical Task Scheduling Deployment
One of the best things about the UNIX environment (aside from being stable and efficient) is the vast array of software tools available to help you do your job. Traditionally, a UNIX tool does only one thing, but does that one thing very well. For example, grep is very easy to use and can search vast amounts of data quickly. The find tool can find a particular file or files based on all kinds of criteria. It's pretty easy to string these tools together to build even more powerful tools, such as a tool that finds all of the .log files in the /home directory and searches each one for a particular entry. This erector-set mentality allows UNIX system administrators to seem to always have the right tool for the job.
Cron traditionally has been considered another such a tool for job scheduling, but is it enough? This webinar considers that very question. The first part builds on a previous Geek Guide, Beyond Cron, and briefly describes how to know when it might be time to consider upgrading your job scheduling infrastructure. The second part presents an actual planning and implementation framework.
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.View Now!
|The Firebird Project's Firebird Relational Database||Jul 29, 2016|
|Stunnel Security for Oracle||Jul 28, 2016|
|SUSE LLC's SUSE Manager||Jul 21, 2016|
|My +1 Sword of Productivity||Jul 20, 2016|
|Non-Linux FOSS: Caffeine!||Jul 19, 2016|
|Murat Yener and Onur Dundar's Expert Android Studio (Wrox)||Jul 18, 2016|
- Stunnel Security for Oracle
- The Firebird Project's Firebird Relational Database
- My +1 Sword of Productivity
- Managing Linux Using Puppet
- SUSE LLC's SUSE Manager
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Non-Linux FOSS: Caffeine!
- Doing for User Space What We Did for Kernel Space
- Google's SwiftShader Released
- Parsing an RSS News Feed with a Bash Script
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide