Tkinter: The good, the bad, and the ugly!

rantingrick rantingrick at gmail.com
Sat Jan 1 17:03:11 EST 2011


On Dec 31 2010, 8:47 am, Adam Skutt <ask... at gmail.com> wrote:


Ok, at this point i am not going to respond to the last few posts that
where directed at me. What i am going to do is to restate my
intentions at the time i started this thread.

First and foremost i want everyone to know that i have tons of GUI
code that utilizes the Tkinter module and feel very confident crating
GUI's with Tkinter. I am not some novice who tried to write up a hello
world GUI, got aggravated, and then decided to vent about it. Quite to
the contrary...

I actually like Tkinter's simplistic API. I especially love Tkinter
geometry management! However i realize that TclTk is lacking and
because of that fact we will always be at the mercy of another
community. This bothers me, and it should also bother you. Tk has a
glass ceiling that cannot be broken by you, or me, or anyone in the
Python community. If we are to have a GUI library it should be one
that is up to date and feature rich. In the latter case there may
still be a glass ceiling but it is so high they we will never notice
anyway!

However be aware that GUI's libraries are large beasts. You cannot
cram everything into the stdlib. So what should go into the stdlib
then? Well only a very limited subset of widgets. Some might say that
you will be limited with a limited subset, well i must agree with
argument :). Some might also say that a glass half full is also half
empty, duh!

Everyone needs to realize that the only reason for having ANY GUI in
the Python stdlib is for ease of learning and also for "batteries
included". We just want the basics of a GUI with an extension library
available for download. There are two major advantages to this
setup...

1. The basics never change. So the Python "stdlib GUI module" becomes
a "set it and forget it" module. The Python "GUI extension library"
can change all it wants and Python remain backwards compatible.

2. By relegating the bloat to an external download the stdlib is kept
as small as possible.

... These two talking points are the main idea behind this whole damn
discussion i initiated. We need to look beyond our own selfish needs
and think about the community first. Anyone who truly cares about
Python's stability and future will agree with these two points.

I'll repeat... TclTk has had a whole decade to become a 21st century
GUI library. I really don't think the motivation is there. Some will
argue that ttk brings in the new widgets necessary to compete with a
full featured GUI like wxPython -- and they could not be more wrong!

There is no real Tk::Grid. Sure as someone suggested you can mimic a
grid with another widget, it's just lipstick on a pig really. Go and
check out the wx::Grid with all its wonderful capabilities and then
you shall be enlightened!

This is also no real support for a true Listview widget. Again go
check out wx::ListView with all it's capabilities and ye shall be
further enlightened.

Wx is by far the best choice for Python. A small subset of wx widgets
in the stdlib and ONE (and only one!) downloadable extension library.
Yes the stdlib widgets are only going to cover the most minimal of
GUIs -- for learning purposes, utilities, or just simply toys) If you
plan to do professional GUI work than package the extension library.
It's very simple really.

Geesh! Now i know how the early scientist felt when trying to convince
the lemmings that the earth is not flat!

Flatearther said: """You heritic!. If the earth were round we would
fall off the bottom!"""








More information about the Python-list mailing list