Tix

see Tix

Pros

  1. Very handy interface.
  2. Has some nice widgets that Pmw misses, like progress bar and tree widget.
  3. Looks nicer than Pmw (if that matters).
  4. May perform better than Pmw (if that matters).

Cons

  1. No Python documentation, only unix man pages.
  2. Some linux distributions used to ship broken Tix versions, so if your programs are supposed to run on any platform stability might be an issue.
  3. Tix really isn't developed anymore: it's more of a legacy framework. It looks *very* dated.

Pmw

see Pmw

Pros

  1. Very flexible, you can easily set up your own megawidgets.
  2. Excellent documentation.
  3. Excellent backwards compatibility and compatibility with any versions of Python and Tk.
  4. Unbeatable stability.

Cons

  1. The interface looked a little alien at a first glance
  2. Dated appearance.
  3. Lacks some of the nice features of BWidgets, such as using images in a listbox.

BWidgets

see BWidgets

Pros

  1. As far as I know it's very stable on the tcl side.
  2. *Very* configurable, and provides excellent support for graphics within widgets (i.e. use images in a listbox, extremely configurable tree widget that is more modern in appearance than other tree widgets, etc.)

Cons

  1. No python docs, only unix man pages. And the Tcl documentation is not complete--sometimes the only way to understand what is really going on with BWidgets is to look at the Tcl source code.
  2. The python module is not much tested, so it might contain bugs.

Which one to choose?

  1. If you need to focus on reliability (and want good docs) stick with Pmw.
  2. If you need some widget that is missing from Pmw, try to pick it from bwidget.
  3. If look and feel (and maybe performance) is an issue (or of course if the others don't have the widget you need) try Tix.
  4. If you want to pick the best widgets you can get, it should be no problem to use all three at a time, and use the widget from the library that you like the most (for example the Pmw.EntryField is hard to beat, but you may also want to use the Tix.DirTree and the bwidget.ListBox).

Other alternatives for sophisticated Tkinter GUI's

  1. Tile http:://tktable.sourceforge.net/tile s a native theming extension for Tk that will go into the Tk core in version 8.5. It updates Tk to fit in well with MacOSX and WindowsXP, and provides more modern themes for X11. See TileWrapper for a basic mapping of Tile to Tkinter.

  2. TableList http://www.nemethi.de is a multi-column listbox for Tk with support for sorting, embedding images in rows/columns, and more. It is very configurable and provides a more modern display for tabular data than is found in the existing Tkinter widgets. See TableListWrapper and TableListTileWrapper.

  3. Tile, TableList and BWidgets are a popular combination among Tcl/Tk developers for adding more polish to a GUI than is provided by core Tk.


This page is incomplete. It is missing:

  1. Screenshots of each toolkit on different OS's. There are 2 options: all screenshots of a toolkit in its page, or every widget should have its own page!!
  2. Difference between similar widgets in each toolkit.
  3. Comparing Tkinter to other toolkits, specially wxPython.

tkinter: TixVsPmwVsBWidgets (last edited 2010-07-26 11:59:12 by localhost)