[Python-Dev] What to choose to replace Tkinter?

Guido van Rossum guido@python.org
Wed, 25 Oct 2000 08:53:48 -0500


> From some feedback forms from old runs of my Python course (with spelling
> corrections :-)
> 
> 1. "My users don't care what programs are written in.  They just care
>    if they're easy to use.  They won't care if Python programs have
>    the same look and feel on different computers, because they won't
>    ever think of [name of program] as a Python program.  To them, it
>    will be a Windows program that looks funny."
> 
> 2. "You said three times in the intro lecture this morning that the
>    most important thing in a GUI was consistency.  Then you told us to
>    write GUIs that look different from everything else on the desktop."
> 
> 3. "I'm confused: I didn't realize that Python was a library on top of
>    TCL."
> 
> I spent a minute drawing blob diagrams to answer #3; I think most students
> understood, but the person who asked the question was clearly still confused.
> 
> I didn't try to dispel #1 or #2, because I agree with them: my
> experience is that consistent look and feel are crucial for making
> non-programmers less afraid of pressing the wrong button or making
> the program "do weird things".  Other people with more experience
> creating end-user applications may have different views.

This is helpful.  Can you elaborate on what elements of the Windows
look-and-feel are missing in Tkinter?  As far as I know, the menu
bars, file selection dialogs, scroll bars, dialog boxes and so on have
a thoroughly native look-and-feel, since Tk implements these as
wrappers around the native widgets.  IDLE doesn't look very different
from Notepad!

So what's missing?  A toolbar with icons?  That would be easy to add
using existing Tk controls (Pmw has it too).  The multiple document
interface?  It sucks -- and even Word 2000 has gone away from that!

What kind of GUIs did you teach them exactly?  If you started with
basic Tkinter widgets, sure, it looks different than anything else.
But that depends on the widget layout in the program, not on the
widget library used!

--Guido van Rossum (home page: http://www.python.org/~guido/)