MITK Custom Viewer插件学习

Custom Viewer Example 是一个 BlueBerry 示例插件,用于演示 BlueBerry 应用程序框架提供的自定义功能。示例插件实现了一个 GUI 定制的查看器应用程序。开发的查看器包含嵌入在定制图形用户界面中的简单查看器功能。

提供了以下功能:

  • 隐藏的菜单、工具和状态栏
  • 隐藏的编辑器区域
  • 固定视角
  • 自定义主窗口内容
  • 基于QTabBar的自定义透视栏
  • 使用 Qt 样式表进行 GUI 自定义

创建 CustomViewer 插件

首先在 Examples/Plugins 中提供一个文件夹,其中包含构成应用程序插件本身的所有文件。

然后打开PluginList.cmake 添加条目以进行插件注册

在 Examples/BlueBerryExampleLauncher/Configurations 文件夹中创建一个新文件,其中包含插件本身以及任何其他所需的插件。

CustomViewer 插件的目录结构:

为了将CustomViewer应用程序及其perspectives(视角)添加到 BlueBerry 组件,我们首先要在 plugin.xml 文件中声明相应的扩展点。如下图所示,我们的应用程序及其透视图分别为 org.blueberry.osgi.applications 和 org.blueberry.ui.perspectives 扩展点做出了贡献。

  • Point:目标扩展点的完全限定标识符
  • id:扩展实例的可选标识符
  • name:扩展实例的可选名称
  • class:实现的类的完全限定名称

启动 BlueBerryExampleLauncher,并选择CustomViews,会显示一个空的初始透视图的窗口。

自定义主窗口布局

在创建好的 CustomViewer 插件里进行界面布局,通过定义透视类、贡献透视扩展点、在插件激活器中注册透视以及添加到 cmake 文件来创建 Perspective视角。如图添加了以下四个Perspective:ViewerPerspective、PatientManagerPerspective、lrobottestingPerspective、DicomPerspective

重新cmake编译MITK-Build

到第二层MITK-Build点击configure,成功后在vs中打开项目就能看到新添加视图的源文件了

自定义菜单栏

  • WorkbenchWindowAdvisor类:用于控制WorkbenchWindow的GUI,继承于

berry::WorkbenchWindowAdvisor类。我们要想自定义自己的GUI,需要自定义自己的WorkbenchWindowAdvisor类

  • QtPerspectiveSwitcherTabBar类:界面切换功能由 SwitchPerspective 函数、对选项卡更改做出反应。在 SwitchPerspective 函数中,我们根据指示当前活动选项卡的当前索引显示透视图。

布局

Page Composite,即保存透视图视图内容的部分,通过在 CreateWindowContents 方法中创建 Page Composite 来实现,将其与其他小部件一起放置在 MainWindow 中,并将其提供给 WorkbenchWindowConfigurer 以进行视图控件布局过程,然后将其包装在我们自己的 PageComposite 小部件中:

  mainWindow->setCentralWidget(CentralWidget);
  CentralWidgetLayout->addLayout(PerspectivesLayer);
  CentralWidgetLayout->addWidget(PageComposite);
  CentralWidget->setLayout(CentralWidgetLayout);
  PerspectivesLayer->addWidget(PerspectivesTabBar);
  // for correct initial layout, see also bug#1654
  CentralWidgetLayout->activate();
  CentralWidgetLayout->update();
  this->GetWindowConfigurer()->CreatePageComposite(PageComposite);

自定义菜单栏,需要在CustomViewerWorkbenchWindowAdvisor.cpp文件中CreateWindowContents()函数中做更改。

代码如下:

QtPerspectiveSwitcherTabBar *PerspectivesTabBar =
    new QtPerspectiveSwitcherTabBar(this->GetWindowConfigurer()->GetWindow());
  PerspectivesTabBar->setObjectName("PerspectivesTabBar");
  PerspectivesTabBar->addTab(QString::fromLocal8Bit("菜单1"));
  PerspectivesTabBar->addTab(QString::fromLocal8Bit("菜单2"));
  PerspectivesTabBar->addTab(QString::fromLocal8Bit("菜单3"));
  PerspectivesTabBar->addTab(QString::fromLocal8Bit("菜单4"));
  PerspectivesTabBar->addTab(QString::fromLocal8Bit("菜单5"));
  PerspectivesTabBar->addTab(QString::fromLocal8Bit("菜单6"));
  PerspectivesTabBar->setVisible(true);
  PerspectivesTabBar->setDrawBase(false);

创建Views视图

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

添加视图扩展点

打开plugin.xml文件,添加扩展点

打开files.cmake文件,添加所需文件

重新cmake编译MITK-Build

到第二层MITK-Build点击configure,成功后在vs中打开项目就能看到新添加视图的文件了;

加小图标:把需要的图放到一级扩展点文件夹下的resources文件下

图片路径加到org_mitk_example_gui_customviewer.qrc文件中

 QIcon icon;
  icon.addFile(
    QString::fromUtf8(":/org.mitk.example.gui.customviewer/logo.png"), QSize(), QIcon::Normal, QIcon::Off);
  pushbtnAppIcon->setIcon(icon);

pushbtnAppIcon->setIcon(QIcon(":/org.mitk.example.gui.customviewer/warning.png"));
  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些指导。 首先,您需要安装CMake和MITK。确保它们都已正确安装并设置好环境变量。 接下来,创建一个新的文件夹,以存放您的插件工程。假设它的名称为MyMITKPlugin。 在MyMITKPlugin文件夹中,创建一个名为CMakeLists.txt的文件,并添加以下内容: ``` cmake_minimum_required(VERSION 3.10) project(MyMITKPlugin) # Find MITK find_package(MITK REQUIRED) # Set up your plugin mitk_create_plugin( EXPORT_DIRECTIVE MYMITKPLUGIN_EXPORT EXPORTED_INCLUDE_SUFFIXES src MODULE_DEPENDS MitkCore ) # Add your source files add_subdirectory(src) ``` 上述代码将使用MITK作为依赖项,并创建一个名为MyMITKPlugin的插件工程。接下来,您需要在src文件夹中添加您的源代码。 例如,如果您要添加一个名为MyFilter插件,您需要在src文件夹中创建一个名为MyFilter的文件夹,并在其中添加以下内容: ``` mitk_create_plugin( EXPORT_DIRECTIVE MYFILTER_EXPORT EXPORTED_INCLUDE_SUFFIXES src MODULE_DEPENDS MitkCore ) set(SRC_FILES src/MyFilter.cpp ) mitk_add_library(MyFilter ${SRC_FILES} ) target_link_libraries(MyFilter PUBLIC MitkCore ) ``` 上述代码将创建一个名为MyFilter插件,并将其作为MitkCore模块的依赖项。您需要在src/MyFilter.cpp文件中添加您的实际源代码。 最后,您需要使用CMake来构建和编译您的插件工程。在MyMITKPlugin文件夹中创建一个名为build的文件夹,并在其中运行以下命令: ``` cmake .. make ``` 这将构建和编译您的插件工程,并将生成的库文件放置在MyMITKPlugin/build/plugins文件夹中。 希望这个指导对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值