KWWidgets is a free, cross-platform and open-license GUI Toolkit built on top of Tk It provides low-level core widgets, advanced composite widgets, and high-level visualization-oriented widgets that can be interfaced to visualization libraries like VTK. KWWidgets is an object-oriented C++ toolkit that can interact and co-exist with Tcl/Tk directly from C++. It is wrapped automatically into a Tcl package, and therefore can be used directly from Tcl/Tk also, allowing for fast-prototyping and scripting.


KWWidgets an be compiled on a large number of platforms, including Windows, Mac, and many flavors of Unix/Linux systems. It is open-source and uses the same BSD-style open-license as VTK. It is available for free and can be downloaded without restrictions.

Like many other GUI toolkits, it provides low-level core widgets like buttons, entries, scales, menus, combo-boxes, thumbwheels, spin-boxes, trees, notebooks and multi-column lists to name a few. Unlike many of those toolkits though, it also provides advanced composite widgets like toolbars, tooltips, progress gauges, split-frames, splash-screens, 2D/3D extents, color pickers, histograms, windows and dialogs.

APN: Some of the high level widgets look pretty useful. Can these be used together with Tk widgets ? If so, at what level of integration (placing a kwwidget inside a Tk toplevel eg.) ? Also, the look and feel seems to follow the older versions of Windows. Does it have theme support ?

SEH 2006-09-05 -- The package looks so new that it's hard to get in-depth info about it. It's the widget set used in the vtk project, packaged separately. My impression is that it can't be used in the Tk widget hierarchy, but a single application might be able to run separate Tk and KWWidget widget sets.

It sounds like it might be a strong alternative to anyone who might have been considering using fltk instead of Tk. It would also be interesting to get a thorough feature comparison with Tile.

NEM: Judging by the docs [L1 ], it looks like it is built on top of Tcl/Tk and that kwwidgets are Tk widgets with some bells and whistles. The code examples contain snippets like:

pack [$widget GetWidgetName] ...

So, it looks like you can use standard Tk commands like pack with these widgets. I would guess then that you can mix and match to some degree. It looks like a nice package, although the Tcl API seems a bit clumsy in places (probably due to being auto-generated from the C++ API).[L2 ]