Presentation on theme: "NA-MIC National Alliance for Medical Image Computing 3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D."— Presentation transcript:
NA-MIC National Alliance for Medical Image Computing 3D Slicer Qt Port & qCTKWidgets Steve Pieper, Ph.D.
National Alliance for Medical Image Computing 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/ /16/2011 William 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 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 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 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 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 Next Steps / Wishlist / Issues Eventually want all the widgets listed here: –http://www.commontk.org/cgi-bin/trac.cgi/wiki/WidgetPlanshttp://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