学习笔记20

Part III MITK开发者手册

四、Blueberry——MITK应用程序框架

1. Blueberry Application Framework (关于工作台、视图、编辑器的概念)

(1)Workbench

(2)Workbench Window

(3)Workbench Page

(4)Workbench Part

<1> Editor

<2> View

(5)Perspective

2. Blueberry Examples

2-1 MinimalApplication

(1)插件的.h和.cpp文件

2Activator文件(org_mitk_example_gui_minimalapplication_Activator.h,

(3)org_mitk_example_gui_minimalapplication_Activator.cpp)(用于注册)

(4)扩展点(plugin.xml)

2-2 Multipleperspectives

2-3 SelectionService

(1)Qt Model/View selections

(2)MITK DataNode selections

2-4 ExtensionPointDefinition

(1)定义扩展点

1.在plugin.xml文件中,扩展点定义如下:

<extension-point id="org.mitk.example.extensionpointdefinition.changetext"

 name="Change Text of Label" schema="schema/changetext.exsd"/>

指定了该扩展点的唯一标识id为org.mitk.example.extensionpointdefinition.changetext,在对该扩展点进行扩展时都需要声明该idschema(即changetext.exsd)描述了此扩展点扩展的规则

2.在此插件的视图MinimalView中(MinimalView.h),通过ChangeTextRegistry来查找并注册所有可用的扩展

CreateQtPartControl方法(MinimalView.cpp)中实现查找并注册可用扩展:

3.

这些根据扩展创建的按钮连接到ChangeText方法(槽函数),在该方法中去寻找扩展并创建对应的扩展处理实例,按照扩展类中定义的方式更改输入文本,并在另一个文本字段中输出更改后的文本。

(2)扩展扩展点

1.

plugin.xml文件中,扩展定义如下,严格遵循changetext.exsd的扩展规则。

2.用两个类实现两个扩展

2-5 CustomerViewer

(1)创建CustomViewer应用程序插件

1.在Examples/Plugins创建一个插件文件夹org.mitk.example.gui.customviewer,其中包含构成应用程序插件本身的所有文件。

(我们可以看到一个documentationresources文件夹,一个包含所有源文件的src文件夹,一些与cmake相关的文件,以及一个与BlueBerry相关的插件扩展和扩展点声明的plugin.xml文件。)

2.在Examples/Plugins/PluginList.cmake中添加对应插件以进行插件注册。(注册自己)

3.在Examples/BlueBerryExampleLauncher/Configurations文件夹中创建文件CustomViewer.cmake,其中包含定义该应用程序所需的插件和描述。

4.

接下来,我们将一些源代码添加到我们的插件文件夹中。

1)

应用程序类berry::IApplication派生CustomViewer作为应用程序类,该类充当此应用程序运行时的入口点。它定义了应用程序在启动时结束前的操作(start stop

Start()方法

在给定的display和WorkbenchAdvisor的情况下,创建并运行Blueberry工作台

2)

berry::QtWorkbenchAdvisor派生的CustomViewerWorkbenchAdvisor

声明一个初始化窗口的perspective的ID字符串,并创建一个WorkbenchWindowAdvisor用于控制工作台主窗口的GUI创建

之后需要相应地定义类CustomViewerWorkbenchWindowAdvisor

3

创建一个名为ViewerPerspective的类,该类派生自berry::IperspectiveFactory,是上述声明的由WorkbenchWindow显示的初始perspective

4

需要一个ctkPluginActivator派生类,用于自定义插件的启动和停止

(插件还需要Activator文件来进行注册)

通过重写start()来注册给定ctkPluginContext的插件类。(包括application和perspective)

5.

为了将我们的应用程序及其透视图连接到BlueBerry框架中,我们必须在plugin.xml文件中声明相应的扩展点扩展。

(2)创建ViewerPerspective和DicomPerspective

1.自定义主窗口内容需要创建一个从berry::WorkbenchWindowAdvisor派生的自定义类CustomViewerWorkbenchWindowAdvisor,此类可控制WorkbenchWindow的布局

2.

对于类似Tab-Widget切换透视图功能,我们定义了QTabBar派生的QtPerspectiveSwitcherTabBar

。。。

(3)完善相关功能

1)已有插件

对于数据管理器功能,我们直接使用已定义的插件视图org.mitk.views.datamanager,只需要将它添加到ViewerPerspective中的CreateInitialLayout()方法即可:

layout->AddStandaloneView("org.mitk.views.datamanager", false, berry::IPageLayout::LEFT, 0.3f, layout->GetEditorArea());

2)自定义插件

(4)自定义主窗口样式

为了自定义GUI,我们需要修改Blueberry应用程序使用的Qt-Stylesheets文件

我们必须处理berry::IQtStyleManager来告诉BlueBerry工作台使用特定的Qt-Stylesheet。这在CustomViewerWorkbenchAdvisor::Initialize()中完成:

。。。

2-6 ExamplePlugin

这说明,只要在主应用程序中通过指定扩展的应用程序ID以及通过相应的配置来组合不同的插件(plugin.xml中定义view),就可以很轻松地开发出属于我们自己的软件。

3. Blueberry Extension-Point Reference

(1)org.blueberry.osgi.applications

允许为BlueBerry平台扩展application

(2)org.blueberry.core.runtime.products

允许为Blueberry平台扩展一个或多个product

(3)org.blueberry.ui.perspective

该扩展点用于将新的IperspectiveFactory类添加到工作台中

(4)org.blueberry.ui.views

该扩展点用于为工作台添加新的视图

(5)org.blueberry.ui.preferencePages

Workbench提供了一个通用的偏好设置对话框(在软件中以Ctrl+P打开),此扩展点用于在此对话框中添加和扩展偏好设置页面

(6)org.blueberry.ui.keywords

该扩展点定义了仅可被其他模式使用的关键词,如preferencePages

4. Blueberry Plugins

五、基于MitkWorkbench开发应用程序

1. 如何创建新的插件(Plugin)

1-1 插件生成器和插件

(1)MitkPluginGenerator命令

(2)使用插件生成器生成插件

1.定位到

M-install/MITK-build/bin/Release目录下会生成命令行工具MitkPluginGenerator.exe

2.

我们来运行命令:

MitkPluginGenerator -ps org.mitk.myplugin -vn "My View" -v HIT -o D:\MITK-tutorial\New_plugin

3.

直接将该插件复制到MITK-src/Plugins源码目录下

4.

并在PluginList.cmake中加入一句:

org.mitk.myplugin:ON

5.

然后我们就可以打开CMake-gui,点击Configure,随后就会出现编译myplugin的选项,继续Configure,然后Generate。

6.

ctkPluginActivator派生

BERRY_REGISTER_EXTENSION_CLASS声明本插件中所有需要被插件框架识别和扩展的类,比如perspective、view

1-2 MitkStep9:A New Plugin:RegionGrowing

1-3 编程提示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值