3DSlicer23:Module-Create Loadable
1.Overview
可加载模块可以看做是Logic和UI联合构成的。
2.Creating Loadable Module
- 创建模块目录
建议使用ExtensionWizard采用模板的方法生成文件和文件目录。
- Build
可以使用CMake GUI、也可以使用命令行的方法。注意的是一定要指定Slicer_DIR为实体。例如:Slicer_DIR=D:\Slicer4D\Slicer-build
- Installing
之前也谈到过这一点,对于Slicer的机制,并没有“Installing”一说。我们可以理解为对插件的注册。在Application Setting Dialog中设置Addition Module Path的时候,路径指示到模块的库目录。例如:D:\Slicer4D\Slicer-build\ModuleTest\myLoadable-build\lib\Slicer-4.7\qt-loadable-modules\Debug
- Check the module
打开Slicer.exe,就可以在Module Navigation Interface中找到我们新建立的模块。Slicer官网提供给了我们修改module名字的方法如4,本人不建议改来改去的麻烦。
- 使用启动器(Launcher)打开Qt Designer
在Slicer开发中,我们慢慢会发现启动VS、QtDesigner等开发环境和以往很不同,往往是在命令行中利用Launcher(Slicer.exe)进行启动。d: cd Slicer4D/Slicer-build Slicer.exe --designer
- Change the UI
使用Qt Designer,编辑模块的UI文件,例如,我的UI文件位于:D:\Slicer4D\Slicer-build\ModuleTest\myLoadable\myLoadable\Resources\UI通过上面的展图,可以发现我这里是存在两个UI文件的:qSlicermyLoadableFooBarWidget.ui、qSlicermyLoadableModuleWidget.ui。细节参考3.2.
- Edit 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]
3.如何使用QtDesigner进行开发?
3.1 加载CTK和MRML部件
为了在Qt Designer中拥有CTK Widget和MRML Widget部件,Qt Designer提供了两个选项:
- the first is to copy the CTK and MRML plugin libraries into %QT_DIR%/plugins/designer
- the second is to set the environment variable QT_PLUGIN_PATH to the directory Slicer-build/bin containing the subdirectory designer with the plugin libraries.
Windows Note:利用正确的环境变量运行Qt Designer:Slicer.exe --designer。如果Slicer处于Debug模式下,那么Qt也必须用Debug模式。3.2 Building & Installing
官网给的Build方法比较麻烦,这里我尝试了一种相对比较简单的方法:
- UI设计好之后保存;
- 利用CMake进行编译生成*****.sln
- 利用VisualStudio打开*****.sln,进行编译
- 按照3方法进行注册即可
VisualStudio编译是为了根据UI文件生成ui_qSlicer_*Name*_ModuleWidget.h,例如本例生成了ui_qSlicermyLoadableModuleWidget.h。该文件被qSlicermyLoadableModuleWidgetGenericTest.cxx使用。
4.模块间的依存
原理如5.6所示,具体还有待研究。
5.参考资料
1.Creating:https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/CreateLoadableModule2.Building:https://www.slicer.org/wiki/Documentation/Nightly/Developers/ExtensionWizard#Building3.Installing:https://www.slicer.org/wiki/Documentation/Nightly/Developers/ExtensionWizard#.22Installation.224.Checking:https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/CreateLoadableModul5.QtDesigner:https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/QtDesigner6.ModuleDependency:https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/CreateLoadableModule
3DSlicer23:Module-Create Loadable相关推荐
- OPA 6 - module(Create Button Test);
Created by Wang, Jerry, last modified on Nov 08, 2015 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- 如何将自定义代码生成TVM
如何将自定义代码生成TVM 如何将自定义代码生成TVM 本文参考链接: https://tvm.apache.org/docs/dev/how_to/relay_bring_your_own_code ...
- TVM实现hardware backend
TVM实现hardware backend 官方的矩阵相加的示例如下: 2个矩阵相加的实现 for (int i = 0; i < n; ++i) { C[i] = A[i] + B[i]; } ...
- TVM开发三个示例分析
TVM开发三个示例分析 把自主生成的代码生成TVM 把自主生成的代码生成TVM 目录 简介 要生成C代码. 要生成任何其它图形表示. 实现一个C代码生成器 实现[CodegenC] 运算符代码生成 输 ...
- 怎样用Python控制图片人物动起来?一文就能Get!
作者 | 李秋键 责编 | 李雪敬 头图 | CSDN 下载自视觉中国 出品 | AI科技大本营(ID:rgznai100) 引言:近段时间,一个让梦娜丽莎图像动起来的项目火遍了朋友圈.而今天我们就将 ...
- RTlinux3.2安装
( 1 ).前言 2003 年以后, fmslabs 的 RTLinux Free 版本为 3.2Pre ,和以前的 RTLinux 3.1 比较,不再需要必须从 2.4.4 的内核上安装. RTLi ...
- 解密虚拟 DOM——snabbdom 核心源码解读
本文源码地址:https://github.com/zhongdeming428/snabbdom 对很多人而言,虚拟 DOM 都是一个很高大上而且远不可及的专有名词,以前我也这么认为,后来在学习 V ...
- magento php 所需模块,Magento 博客
Magento2已经发布一段时间了.Magento1.9.x到Magento2,模块的结构已经出现很大的变化.今天,我们将指导您如何创建一个简单的Magento2模块. 创建模块之前,我们对比一下Ma ...
- springboot---整合shiro
Shiro是一个非常不错的权限框架,它提供了登录和权限验证功能 1.创建数据库脚本 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -------- ...
- abaqus质量缩放系数取值_ABAQUS/Explicit质量缩放(MASS SCALING)使用心得 [转simwe]...
概要 准静态分析或某些动态分析中,少数尺寸较小的单元控制稳态时间增量,为提高计算效率,ABAQUS/Explicit常采用质量缩放的方法.质量缩放可用于: 1.缩放整个模型,单个单元或单元组的质量 2 ...
最新文章
- 在面向数据流的设计方法中,一般把数据流图中的数据流划分为 (16) 两种。 答案:C
- groovy 慢_groovy优化
- ad 卡尔曼_对Kalman(卡尔曼)滤波器的理解
- Python反爬机制介绍
- Python与MySQL的交互
- Matlab | Matlab从入门到放弃(4)——样本均值
- f5 ppt图标_PPT制作学习 (PPT技巧干货,拿走不谢)
- 什么时候使用Shell
- Django的第一步(第一节)
- js的动态加载、缓存、更新以及复用(四)
- 爱特php文件管理器2.8_查找「超级蜘蛛池开发者中心 抠:44564876易」安卓应用 - 豌豆荚...
- (转)Android--sharepreference总结
- 从401航班事故调查看项目总结
- fedora 安装oracle 12c,Fedora12下安装Oracle11客户端
- Cosmos发起提案计划申请资助实施ATOM全面营销计划
- 数据结构练习(20)和为n连续正数序列
- MATLAB强化学习实战(十) 多智能体的路径跟随控制
- PS制作水彩效果头像
- esp32 cam 内网穿透 视频传输
- MATLAB当中一些简单的数值分析函数总结