NA-MIC National Alliance for Medical Image Computing 3D Slicer Qt Port & qCTKWidgets Steve Pieper,...

7
NA-MIC National Alliance for Medical Image Computing http://na-mic.org 3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.

Transcript of NA-MIC National Alliance for Medical Image Computing 3D Slicer Qt Port & qCTKWidgets Steve Pieper,...

Page 1: NA-MIC National Alliance for Medical Image Computing  3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.

NA-MICNational Alliance for Medical Image Computing http://na-mic.org

3D Slicer

Qt Port & qCTKWidgets

Steve Pieper, Ph.D.

Page 2: NA-MIC National Alliance for Medical Image Computing  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

Page 3: NA-MIC National Alliance for Medical Image Computing  3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.

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…)

Page 4: NA-MIC National Alliance for Medical Image Computing  3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.

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

Page 5: NA-MIC National Alliance for Medical Image Computing  3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.

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

Page 6: NA-MIC National Alliance for Medical Image Computing  3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.

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

Page 7: NA-MIC National Alliance for Medical Image Computing  3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.

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