From Commontk
Jump to navigationJump to search
Home < Documentation < WidgetPlans


The ctkGUI library will need to provide a set of Qt extension widgets geared for scientific and medical uses.

Some of these widgets exist in a variety of Qt-based packages which may be drawn upon if the license permits. Other widgets will be recreated from scratch based on corresponding widgets in other toolkits. This page collects some ideas and examples of the types of widgets that are needed. Please add ideas to the lists below.

General Purpose Widgets

  • Menu Button
  • Color Pickers and dialogs (single color)
  • File Browser Widget (embeddable in a more complex dialog)
  • Load/Save Button
  • stopwatch
  • image gallery
  • database browsers
  • Undo/Redo Buttons/Comboboxes
  • Data repository / scene overview (show all objects, easy modification of visibility, visualization properties ...)
  • Application Settings Dialog (with Registry abstraction)

Scientific Widgets

  • Matrix Display/Edit widget (for numerics)
  • various plots/graphs/tables...
  • gauges and dials

Visualization Widgets

See examples at:

  • Material properties editor
  • Transfer function editors
  • Volume Rendering Parameter Editor
  • Light editor
  • Camera parameters widget

2D/3D Interaction Widgets

See example images from the file attached to this page. Each of these widgets has a 3D interactor (a.k.a. 3D Widget, manipulator, or 3D Gadget) linked to a 2D widget that shows the numerical parameters being manipulated.

See also the VTK Widget examples:

  • Rotation widget
  • Translation widget
  • Isotropic-scaling widget
  • ROI widget
  • Probing widget
  • Distance meter widget
  • Selection widget

See also the way these manipulators are implemented in Autodesk's Maya animation and modeling software:

Medical Imaging Widgets

Application Specific Widgets


  • Voxel Time Course Graphs [1]
  • Design Matrix / Paradigm Editor

Diffusion MRI

  • Tractography Options [2]
  • Fiber Bundle Properties [3]


Built-in Qt Widgets:

Qt Add-On Widgets:

Other Examples: