Widgets
The fundamental unit of a Tkinter GUI is a Widget. You can use the "built-in" widgets that are provided by Tk (listed below), create your own, or install extension packages that define additional widgets.
Widgets provided by Tk include:
Widgets added in Tk 8.4 include:
Also compound buttons, labels, and menu items. the compound option allows you to display both the text and image. ExampleCompoundButton
(In the interest of WikiWikiNess, should we change the above to ButtonWidget, CanvasWidget, etc.?) [no. The above should be named like the Python classes. --jepler](I agree keep them the same as Tkinter class names - but do we need the '/'? MF)
BTW, you can get all configuration options for any widget with:
for k in widget.configure().keys():
print k, ':', widget.cget(k)
-john grayson
eg.
>>> from Tkinter import Button
>>> b = Button()
>>> for k in b.configure().keys():
print k, ':', b.cget(k)Additional Tkinter (pure python) widgets:
Table/Grid Widgets
Tree Widgets
http://home.cfl.rr.com/genecash/tree/index.html An efficient optimized tree control widget written in native Python and Tkinter
http://matt.gushee.net/software/treewidgets/ A general-purpose tree widget library for Tkinter
IDLE The IDLE TreeWidget that can be used outside of IDLE
Additional Tcl/Tk widgets that have Python Tkinter wrappers include:
Tkhtml TkHtml is a Tcl/Tk widget that displays HTML. Tkhtml is implemented in C
tablelist is a pure Tcl table widget. Python bindings are available here [TableListWrapper]
Tktreectrl is an extremely capable hierarchical multicolumn listbox widget written in C. With Tktreectrl you can create treeviews, multi column lists or even file manager alike layouts (see the tktreectrl page for screenshots). A complete and well documented Python wrapper is available here. The TkinterTreectrl package also includes a ready to use multi column listbox class using Tktreectrl and a generic scrolled widget that can be used to easily add one or two static or automatic scrollbars to any listbox-alike Tkinter widget (BTW, most of the scrolled widget's code was shamelessly lifted from the Pmw.ScrolledListBox).
Additional widget sets you can use with Tkinter include:
Easygui from Stephen Ferg: A self-contained package of GUI elements you can incorporate into existing Python programs without any knowledge of event-driven programming.
BWidgets from unpythonic.net by Jeff Epler. An older version was available at effbot.org but that author has stopped development in favour of supporting Jeff's work. Screenshots needed!
Pmw megawidgets on Sourceforge. PMW is "pure Python", so particularly easy to install.
PmwContribD on Sourceforge. The PmwContrib D library consists of several Pmw-based Tkinter widgets including a ProgressDial, SimpleTable, Table, basic TreeExplorer, Font Chooser dialog, Text tag attribute chooser dialog, PipeOutputWindow, Multi-Column Scrolled Listbox, a few other goodies, and a GUI application framework for creating simple GUI apps quickly.
Tix widgets on Sourceforge
Blt graphical widgets for Pmw, on Sourceforge
WCK from effbot.org lets you write your own Tkinter widgets, in Python.
Widget List Box from http://www.freenet.org.nz/python/widgets/ is like a regular list box but you can use widgets in the list instead of words.
tVector from http://www.freenet.org.nz/python/tVector/ is an alternative to the pack() and grid() widget placement methods that allows you to instead place objects in rows and columns much like an HTML table.
TclMacBag is "[a] bag of widgets for Tcl on the Mac". It's particularly easy to install, and focused on Mac-oriented "prettiness".
Need some text on how and where to install some of these widget sets (Blt is especially problematic). Also, need some screenshots (nothing is available for bwidgets) on some of these resources. Lastly, is it possible to mix and match the widgets?