Upload
melvin-whitbeck
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
NA-MICNational Alliance for Medical Image Computing http://na-mic.org
3D Slicer
Qt Port & qCTKWidgets
Steve Pieper, Ph.D.
National Alliance for Medical Image Computing http://na-mic.org
Background• 3D Slicer version 3.x use KWWidgets
– VTK-style interface to Tk– 3D Slicer 1.x, 2.x used Tk directly
• Qt rejected for license reasons– This has changed
• NIH Supplement to help with port 9/17/2009 - 9/16/2011http://www.na-mic.org/Wiki/index.php/Projects:ARRA:SlicerUIWilliam Schroeder, Ph.D., 8%Stephen Aylward, Ph.D., 5% Jean-Christophe Fillion-Robin, 50% Julien Finet, 50% Sebastien Barre, Ph.D., 5%
+ the rest of the slicer development team
National Alliance for Medical Image Computing http://na-mic.org
Overall Plans• Create Qt/KWW co-existence layer (done!)• Prototype a few modules (done!)• Create an architecture for Qt based modules (in
process)• Train developers (first session at January 2010
Project Week)• Port modules (ongoing through 2010…)• Turn off KWW (by end of 2010?)• Continual Improvement (through end of
supplement and beyond…)
National Alliance for Medical Image Computing http://na-mic.org
CTK Opportunity• Serendipity: CommonTK appears at just the right
time• Agreed at CTK Oxford meeting:
– Non-slicer-specific subset of new Qt-based GUI the first pass at CTK’s widget set
• qCTKWidgets– Only depends on Qt (not slicer code)– Currently residing in Slicer3 svn for convenience (will migrate
to commontk.org)– Open for contributions from other CTK members
National Alliance for Medical Image Computing http://na-mic.org
Initial Widgets• qCTKAbstractFactory• qCTKAbstractLibraryFactory• qCTKAbstractObjectFactory• qCTKAbstractPluginFactory• qCTKAbstractQObjectFactory• qCTKAddRemoveComboBox• qCTKCollapsibleGroupBox• qCTKCollapsibleWidget• qCTKCollapsibleWidget2• qCTKColorPickerButton• qCTKCoordinatesWidget• qCTKFittedTextBrowser• qCTKFlowLayout• qCTKMatrixWidget• qCTKNumericInput• qCTKSlider• qCTKSliderSpinBoxLabel• qCTKTitleComboBox• qCTKTreeComboBox
National Alliance for Medical Image Computing http://na-mic.org
Other Qt code in Slicer• qMRMLWidgets
– GUI for interacting with slicer’s data model– Depends on MRML, VTK, ITK
• Base/QTGUI– Implements blocks of slicer application
• Base/QTCLI– Wrappers for Command Line Interface modules (xml-
based slicer execution model programs)
• QTModule– Slicer modules implemented in Qt using QTGUI,
qMRMLWidgets, qCTKWidgets
• Applications/QTGUI (to do)– Main programs built with Qt
National Alliance for Medical Image Computing http://na-mic.org
Next Steps / Wishlist / Issues• Eventually want all the widgets listed here:
– http://www.commontk.org/cgi-bin/trac.cgi/wiki/WidgetPlans– Slicer Qt Port will not generate all of these– May subdivide qCTKWidgets by dependencies:
• Qt only; Qt+VTK, Qt+dcmtk, Qt+VTK+dcmtk
• Want to leverage Qt community (for example, Qxt)– qCTKWidgets may need to be LGPL
• Python Scripting (cannot be commercial or GPL)– PythonQT until PySide is available?
• Conventions– Coding, naming, debugging, capitalization…
• Additional funding