Difference between revisions of "2010 Winter Project Week Qt-ing the Command Line Module"
From NAMIC Wiki
(Created page with '__NOTOC__ <gallery> Image:PW-SLC2010.png|Projects List Image:genuFAp.jpg|Scatter plot of the original FA data through the genu of the corpus…') |
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/") |
||
(11 intermediate revisions by one other user not shown) | |||
Line 2: | Line 2: | ||
<gallery> | <gallery> | ||
Image:PW-SLC2010.png|[[2010_Winter_Project_Week#Projects|Projects List]] | Image:PW-SLC2010.png|[[2010_Winter_Project_Week#Projects|Projects List]] | ||
− | Image: | + | Image:ExectionModelTourGUI.png|Command line module with a KWWidget-base GUI. |
− | Image: | + | Image:Qtlogo.png|Qt. |
</gallery> | </gallery> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Key Investigators== | ==Key Investigators== | ||
− | * | + | * GE: Jim Miller |
− | * | + | * Kitware: Jean-Christophe Fillion-Robin, Julien Finet |
<div style="margin: 20px;"> | <div style="margin: 20px;"> | ||
Line 21: | Line 14: | ||
<h3>Objective</h3> | <h3>Objective</h3> | ||
− | + | Port the CommandLineModule infrastructure for automatic GUI construction to Qt. | |
− | |||
Line 34: | Line 26: | ||
<h3>Approach, Plan</h3> | <h3>Approach, Plan</h3> | ||
− | + | 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. | ||
</div> | </div> | ||
Line 43: | Line 40: | ||
<h3>Progress</h3> | <h3>Progress</h3> | ||
− | + | ||
+ | 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, ... | ||
Line 52: | Line 56: | ||
==References== | ==References== | ||
− | * | + | *[https://www.slicer.org/wiki/Slicer3:Execution_Model_Documentation Execution Model Documentation] |
− | * | + | *[https://www.slicer.org/wiki/Qt_in_Slicer3 Qt in Slicer3] |
− | * | + | *[http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Developers:Projects:QtSlicer QtSlicer] |
− | * | + | *[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 ModuleKey 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, ...