tkinter Soapbox/new demo

For the full text of this rant please see the multi-screen demo under GUI stuff.

Getting multiple screens of information created and managed in tkinter is difficult, especially for a newcomer to Python. There are three primary reasons: First, tkinter is a language several times the size and complexity of core Python and we beginners are easily misled by the simplicity of a tkinter “Hello World” example. The 3 line example usually given is about the same thing as a reprobate saying “Hey little girl, you want a piece of candy?”

Second, using tkinter is tough because there is a massive dearth of clear, CURRENT, complete, easily accessible and easily understandable instruction and information. Let me repeat the important part: instruction AND information (i.e., reference material). And here is one crux of the problem: instruction is one thing, reference information is something else entirely. The two are related, but when it comes to teaching/learning tkinter they mix like oil and water. Most materials try to force them into one package, which overwhelms the student, or they go to the other extreme with demos assuming the student already has a PhD in computer science. A lack of clear, well documented, completely explained demos is a part of our issue. The good reference info on the Python and tcl.tk webisites are criminally short of good Python examples.

Third, as in most computer languages, SYNTAX IS A BITCH.

There are a bunch of secondary problems, one is especially worth mentioning; there is quite a bit of conflicting information, especially about nuts and bolts issues that really make things work. Just look at the conflicting discussions at www.stackoverflow.com. By the way, if you haunt the halls of stackoverflow long enough eventually to begin to look for the answers by a guy named Brian Oakely – they err to being too erudite but they are usually close to right.

As always I would be glad to have suggestions and comments and I will credit any code revisions I post. email me at john@johnoakey.com