You are here
Home > HelloWorld >

Advantages and Disadvantages of Tkinter and wxpython




part of python, nothing extra to download. Very simple syntax. The text widget is remarkably powerful and very easy to work with. The canvas widget is also very easy and powerful. No other toolkit provides the same mix of ease and power than those two widgets in my experience. Uses native widgets on the mac and windows. Tk is rock solid with few cross-platform idiosyncrasies. I think Tkinter’s binding mechanism is far superior to wxPython’s; it’s more flexible and consistent. I think Tkinter’s three geometry managers – pack, place and grid – are much more powerful and easy to use than the wxPython sizers.

  1. Mature, stable.
  2. Widely ported.
  3. Simple API is easy to learn.


Sometimes hard to debug in that Tkinter widgets at their core aren’t python objects; tkinter provides a wrapper around the actual tk widgets which sometimes means you get weird error messages. There is very little printing support (you can generate postscript docs from the canvas, but there’s no built-in support in the text widget for printing). Some people claim Tk is ugly. Tkinter isn’t as “pythonic” as wxPython

  1. Non-native look-and-feel.
  2. Simplistic model is easy to learn, but becomes cumbersome with complex interfaces.
  3. To be truly usable, requires downloading extra toolkits
  4. Probably a dead-end technology, as toolkits such as wxPython gain mindshare.



It has many more widgets, though often that means there are three types of notebook widgets rather than one kitchen-sink widget. wxPython widgets are first class python objects which is really nice. wxPython seems to be more popular; some people care about that, some don’t. wxPython has much better printing support than Tkinter.

  1. Large library of widgets
  2. Native look-and-feel.
  3. Very flexible.
  4. Very helpful user community.


wxPython requires a separate download which can be a pain to manage when you deploy your app. wxPython is a bit buggy IMO, and there are definite cross-platform issues.

  1. Very active development (although this is a pro as well ) means that there are quite often bugs and, less often, API changes.
  2. Requires downloading and installing (not included with Python)

Leave a Reply