NA-MIC/Projects/NA-MIC Kit/KWWidgets

From NAMIC Wiki
Jump to: navigation, search
Home < NA-MIC < Projects < NA-MIC Kit < KWWidgets
Back to NA-MIC_Collaborations

Name of Template project goes here

The KWWidgets provide a cross-platform, open-license, free Graphical User Interface (GUI) toolkit for Slicer3. The KWWidgets have been chosen as the principle GUI implementation toolkit because it is unencumbered with licensing issues. It has been in use for over eight years in a variety of applications including commercial applications.


Much of the progress made during the third year of the NAMIC project has been driven by the Slicer3 application, and companion Slicer3 modules. In particular, the EM Segmenter module has driven the development of work flow support. The following are highlights of this year's effort.

Filebrowser widget/dialog a new set of classes that replaces the old file browser dialog and introduces new file-related widgets. The new widget was designed so that it can be used either in a standalone way as a toplevel dialog, or embedded in a pre-existing GUI. It provides functionalities beyond the default Tcl/Tk Unix file dialog, including favorite/bookmarks, tree views and preview pane. Approximately 9000 lines of code. Annoucement:

State machine, wizard and workflow framework This framework provides both a state machine engine and a wizard workflow that can be used to build typical step-by-step wizard-like interfaces such as registration/licensing wizards, open-file wizards, installation wizards, etc. A GUI-independent state machine engine was developed and provides classes and helpers to implement concepts such as states, inputs and transitions. The wizard workflow is designed to provide higher-level methods allowing the user to develop a wizard in a simpler fashion than mapping it explicitly to a complex set of states, inputs and transitions. Built-in features can be used to meet requirements such as: show/hide step-dependent UIs, navigation along a linear succession of steps (Previous/Next buttons), direct navigation to the last step (Finish button), step validation and constraints, etc. About 6500 lines of code. Description:

Log widget/dialog This widget can be used to display various types of logging/events in the form of a multicolumn log. Each record is timestamped automatically, and the interface allows the user to sort the list by time, type, or description. This widget can be embeded in any widget hierarchy, or used as a standalone dialog. It is included in all applications on which KWWidgets is based and can be used to report error, warnings, or information events to the user. It also intercepts all VTK's Error/Warning macros to present them in a user-friendly way. Annoucement:

The matrix widget This is a simple widget that can be used to edit/display matrices.

  • Other improvements include bug fixes, minor enhancements, including but not limited to:
    • Integrated support for Incr Tcl/Tk.
    • Integration of the tkdnd (drag and drop) and TkTreeCtrl (multicolumn) libraries
    • Password, constraint/validation mode for various widgets
    • Compound mode for various widgets (image + text at the same time)
    • Histogram bugs
    • More examples
    • More events (command/observer pattern)
    • Multi-level progress gauge
    • Improved pseudo-MDI layout manager

Key Investigators

  • Kitware: Sebastien Barre, Yumin Yuan