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

rantingrick rantingrick at gmail.com
Sun Jan 16 13:27:01 EST 2011


On Jan 16, 11:39 am, Kevin Walzer <k... at codebykevin.com> wrote:

First of all welcome back to the discussion Kevin. You and i both
appreciate and use Tkinter extensively and your input is most welcome
here. You are a smart and level headed fella which makes for good
discussion. Thanks for that! Ok, let the battle begin! :-)

> So, after all this discussion, your idea (it's not quite a proposal
> since you haven't initiated the PEP process for it)  boils down to
> replacing Tkinter in the stdlib with a very stripped-down subset of
> wxPython?

Exactly (almost). However I need to stress that nothing will be lost
to the user when this change happens! On the contrary, much will be
gained. You're going to have the same basic capabilities as you have
now in the stdlib with Tkinter HOWEVER, you can download all the
feature rich goodies that only wx can offer.

> I'm not quite clear on what this accomplishes. Some of these widgets in
> Tkinter are ugly, but they have themed (ttk) equivalents (such as label,
> entry, button) that wrap native widgets in a manner similar to wxPython.
> So there's no real advantage to wx here.

This statement is uninformed Kevin. Wx needs no themed widgets because
the default widgets where created equal from day one. TclTk has always
been behind in look and feel. Yes we do now FINALLY have themed
widgets however this does not make TclTk equal to wxPython in any
shape or form. Kevin i ask that you and everyone else who may be
interested in this community to download the wxPython demo. This demo
(which is a work of art in it's own right!) will be all you need to
understand the vast differences between TclTk and wxPython. You can
get it here...

    http://www.wxpython.org/download.php#stable

If for some reason you cannot download this beautiful demo, then at
least look at the awesome screen shots here...

    http://www.wxpython.org/screenshots.php


> Your suggestion that developers who want a larger widget set can
> download the entire wxPython package is, again, answered by the
> observation that numerous Tk extensions, with Tkinter wrappers, exist to
> expand the standard Tk widget set. And there are pure-Python extension
> packages that are not dependent on binary Tk extensions, cf. Python
> Megawidgets. Again, no real advantage to wxPython.

Wrong. Even with the hodgepodge of third party downloads and extension
packages Tkinter cannot hold a candle to the professional quality of
wxPython. Again i urge you to at least download the demo and see for
yourself. WxPython is a massive library of almost any widget you can
imagine using in the 21st century. All of the hard work has been done
for you, no need to create your own custom widgets again and again. Do
yourself a favor and download the demo. Here it is again...

    http://www.wxpython.org/download.php#stable


> Your initial criticism that Python's standard GUI toolkit should not
> dependent on the priorities and development schedule of an outside
> project (Tcl/Tk) seems to have gone by the wayside here, because
> wxPython is an outside project (led by Robin Dunn) that is in turn
> dependent on the timeline of yet another outside project--wxWidgets, the
> underlying C++ library.

Yes, we will always be at the mercy of another development community
unless we build a real Python GUI. Well newsflash, that dream is not
going to happen because we would need to re-invent the wheel many
times over and not to mention the long bug fix time-line. However
let's get back to reality and compare wxPython to TclTk+Tkinter.

First of all wxPython IS a part of the Python community. They DO care
about Python and Python only. Yes WxWidgets IS NOT part of our
community, however the widget set is so mature that we don't need to
worry about version releases. We could live off the current widget set
unchanged for many years to come!! Compare that to TclTk who only
cares about TclTk and the fact that TclTk is not ANYWHERE near the
maturity of wxPython. With Tkinter we WILL need to update as new
widgets and functionality come into being.  Oh did i forget to give
you a link to the beautiful wxDemo, ok here it is...

   http://www.wxpython.org/download.php#stable


> Finally, there are licensing issues to consider. Tcl/Tk's license is
> very liberal, BSD-style, and it is quite similar to Python's. wxWidget's
> library is basically LGPL with a couple of exceptions to make it
> friendlier to proprietary software. Could code under such a license be
> gracefully included in the stlib?

Well we need the license lawyers to weigh in on that aspect. If
wxPythons license is weighed and found wanting then we must consider
something else. However, i will tell you that nothing else exists that
can match the maturity, cross-platform, and feature rich-ness of wx.
If someone knows of any such package by all means speak up!

In any event, the time to start looking for something more appropriate
to this community in the 21st century has long passed. We have allowed
Tkinter to rot and grow pungent for the sake of people's "feelings".
Yes, big changes alike this are going to piss off a few folks because
it is human nature to fear change. However i must stress that as
Python 3000 was a difficult --but very necessary change-- so too will
the ushering of a new GUI kit be. But in the the end, we will be a
better community and language for it. But we must start the
transformation now, because transformations take such a looong time!
We have dragged our collective feet long enough!



More information about the Python-list mailing list