1.简述
可加载模块是针对Slicer设计的C++ Plugin(插件)。他们为特定的功能定义GUI,因为他们对应用程序具有完全控制权。
C++共享库全权控制UI(基于Qt)和Slicer的内部构件(如MRML、logic、显示管理)为繁重的计算进行优化
2.何如设计Loadable Module?
PPT参考资料:
https://na-mic.org/wiki/File:LoadableModules.pptx
2.1 Slicer模块的结构
Slicer/Modules/CoreSlicer/Modules/CLISlicer/Modules/Loadable:Colors、CropVolume、Data、Models、Tractograph、Transform、Volume、VolumeRenderingSlicer/Modules/Scripted
2.2 创建 Loadable Module
Module Plugin整体结构
模块逻辑Module Logic和模块窗口部件Module Widget
2.3 Life of a module
1).启动Slicer
2).Slicer发现我们创建的模块MyModule
解决依赖项在Menu中添加模块标题创建模块逻辑Module Logic:选择性的注册新的节点Nodes模块设置:选择性地注册IO、显示管理DisplayableManager
3).Slicer加载文件(Add Data)
注册的IO可以读取数据显示IO选项(用AddData对话框)通过IO加载文件
4).创建模块窗口小部件
2.4 代码分析
这里分析一下PPT中给的代码逻辑示意图:
原理图(SIGNAL-SLOT、Event-SLOT)
实际运行流程图(SINGAL-SLOT→Synchronize→Event-SLOT)
更详细的资料,请参考如下:
How to creat a Loadable Module?
https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/CreateLoadableModule
转载请注明原文地址: https://www.6miu.com/read-54844.html