Difference between revisions of "2010 Winter Project Week Qt-ing the Command Line Module"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
Line 56: Line 56:
  
 
==References==
 
==References==
*[http://www.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Execution Model Documentation]
+
*[https://www.slicer.org/wiki/Slicer3:Execution_Model_Documentation Execution Model Documentation]
*[http://www.slicer.org/slicerWiki/index.php/Qt_in_Slicer3 Qt in Slicer3]
+
*[https://www.slicer.org/wiki/Qt_in_Slicer3 Qt in Slicer3]
 
*[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Developers:Projects:QtSlicer QtSlicer]
 
*[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Developers:Projects:QtSlicer QtSlicer]
 
*[http://qt.nokia.com/ Qt]
 
*[http://qt.nokia.com/ Qt]
 
</div>
 
</div>

Latest revision as of 17:43, 10 July 2017

Home < 2010 Winter Project Week Qt-ing the Command Line Module

Key Investigators

  • GE: Jim Miller
  • Kitware: Jean-Christophe Fillion-Robin, Julien Finet

Objective

Port the CommandLineModule infrastructure for automatic GUI construction to Qt.



Approach, Plan

The CommandLineModule uses a data specification in XML to define the inputs and outputs of a module. The module automatically constructs a user interface that interacts with the MRML scene using this data specification. Historically, the module has used KWWidgets and Slicer specific widgets for all user interface components.

Porting the CommandLineModule to Qt involves:

  • Automatic GUI generation using Qt in places of KWWidgets
  • Populate GUI with values from MRML
  • Callback process to populate MRML from GUI

This port is already under way and we will use the week to identify anything that would need to change in the underlying CommandLineModuleLogic as well as refine and extend the GUI construction and interaction.

Progress

Met with JC:

  • GUI is constructed
  • Presented the architecture for CLI execution
  • Walked through the logic code
  • JC refactoring the logic code to break up the N-thousand line method
  • Plan to use signal/slots to communicate between the main thread and processing thread
    • Modified, Render, ReadData, DeleteFile, ...