Documentation/4.0/Developers/Tutorials/ModuleWriting

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < 4.0 < Developers < Tutorials < ModuleWriting

Back to Developers Information

Initialization

  • Create the Module directory
$ cd Slicer4
$ python Utilities/Scripts/ModuleWizard.py MY_MODULE_NAME

Where you replace MY_MODULE_NAME with the name of the module you want (e.g. HelloWorld)

Note: on Windows you need to open a terminal and go to the Slicer4 source directory.

Start -> Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008 Command Prompt
$ cd here\is\the\path\of\Slicer4\source\directory
$ ..\Slicer4-Superbuild\python-build\PCBuild\python.exe UtilitiesScripts\ModuleWizard.py MY_MODULE_NAME
  • Edit the file Slicer4/Modules/Loadable/CMakeLists.txt

Add the name of your module at the end of the qtmodules variable assignment:

...
set(qtmodules
  ...
  MY_MODULE_NAME
  )
...
  • Compile
$ cd ../Slicer4-Superbuild/Slicer-build;
$ make -j4

On Windows, it would be:

$ cd ../Slicer4-Superbuild/Slicer-build;
$ .\Slicer.exe --VisualStudio Slicer.sln
On the opened Visual Studio, go to Build -> Build Solution
  • Start Slicer and verify the module is present (listed under "Module Template")
$ ./Slicer
  • Open the designer via the launcher
$./Slicer --designer
  • Edit the module UI file: QTModules/MY_MODULE_NAME/Resources/UI/qSlicerMY_MODULE_NAMEModule.ui

More info on how to use the designer

  • Edit the module files
Slicer4/Modules/Loadable/MY_MODULE_NAME/qSlicerMY_MODULE_NAME.[h|cxx]
Slicer4/Modules/Loadable/MY_MODULE_NAME/qSlicerMY_MODULE_NAMEWidget.[h|cxx]
Slicer4/Modules/Loadable/MY_MODULE_NAME/Logic/vtkSlicerMY_MODULE_NAMELogic.[h|cxx]
...

Qt Designer

  • How to set icons to widgets
    • In the icon property entry of the widget (Property Editor), select a resource file
      • Slicer4/Modules/Loadable/MY_MODULE_NAME/Resources/qSlicerMY_MODULE_NAMEModule.qrc
      • Slicer4/Libs/MRML/Widgets/Resources/qMRMLWidget.qrc
      • Slicer4/Base/QTGUI/Resources/qSlicerBaseQTGUI.qrc
  • How to add an icon in a resource file
    • Add the icon in Slicer4/Modules/Loadable/MY_MODULE_NAME/Resources/Icon
    • Edit the resource file by adding the line
      • "<file>Icons/MyIcon.png</file>"