MITK中org.blueberry.ui.qt 插件功能分析 org.blueberry.ui.qt 插件功能分析一句话定位整个 BlueBerry 工作台Workbench的 Qt 实现——Eclipse RCP UI 层org.eclipse.ui的 C/Qt 移植版是 MITK 图形界面的操作系统。规模385 个公共头文件 internal 目录 338 个文件是最大的框架插件。manifest_headers.cmake显示它只依赖org.blueberry.core.commands和org.blueberry.core.expressions而几乎所有org.mitk.gui.qt.*功能插件都依赖它——UI 插件栈的地基。功能一定义工作台的全部扩展点14 个它是UI 契约的制定者。plugin.xml中声明了 MITK 所有 UI 插件赖以工作的扩展点schema 契约在schema/*.exsd扩展点用途org.blueberry.ui.viewsViewDataManager、分割视图等注册于此org.blueberry.ui.editorsEditorStdMultiWidget、MxN Display注册于此org.blueberry.ui.perspectives/perspectiveExtensions布局方案及其追加org.blueberry.ui.commands/handlers/menus命令、处理器、菜单贡献org.blueberry.ui.preferencePages/keywords设置页org.blueberry.ui.presentationFactories换 tab 皮肤presentation 框架入口org.blueberry.ui.tweaklets/services/intro/elementFactories平台微调点、UI 服务、欢迎页、元素工厂功能二实现 Workbench 概念模型internal/338 个文件窗口层级Workbench → WorkbenchWindow → WorkbenchPage → Perspective → Part(View/Editor)布局引擎PartSashContainer/LayoutTree二叉树/LayoutPartSash/QtSash——分屏与比例管理Part 管理PartStacktab 堆叠、EditorManager、ViewFactory、生命周期与激活焦点Presentation 框架StackPresentation/TabbedStackPresentation/NativeTabFolder/QCTabBar——tab 页的绘制与交互拖拽系统DragUtil/QtTracker/DetachedWindow——tab 重排、跨区停靠、拖出浮窗Perspective 持久化布局保存/恢复IMemento功能三提供插件开发的公共 APIsrc/ 顶层功能插件如 datamanager编程时用的接口全部来自这里berryIViewPart.h/berryIEditorPart.h/berryIWorkbenchPage.h—— Part 开发基类与接口berryISelectionService.h—— 选择服务跨 View 选择传播机制berryIEditorInput.h/berryIEditorRegistry.h—— Editor 输入与注册表AbstractUICTKPlugin—— UI 插件 Activator 基类功能四横切服务子系统子目录目录内容commands/handlers/actions/命令框架命令定义、处理器绑定、菜单/工具栏 Actionservices/服务定位器体系IServiceLocator按 site 分层的服务查找presentations/呈现框架公共 APIapplication/WorkbenchAdvisor等应用生命周期钩子App 启动时定制工作台intro/欢迎页框架tweaklets/平台适配点GuiWidgetsTweaklet等把 Qt 细节隔离在可替换实现后guitk/util/model/GUI 工具事件、几何计算、UI 模型testing/UI 测试支持在依赖栈中的位置org.mitk.gui.qt.*datamanager、segmentation、mxnmultiwidgeteditor… │ Require-Plugin / 实现其扩展点 / 调用其 API ▼ org.blueberry.ui.qt ← 本插件工作台实现 扩展点定义 公共 API │ Require-Plugin ▼ org.blueberry.core.commands / core.expressions │ ▼ org.blueberry.core.runtimeExtensionRegistry解析 plugin.xml→ CTK总结org.blueberry.ui.qt Eclipse 的org.eclipse.ui在 Qt 上的对应物。它不提供任何医学影像功能但 MITK 所有可见的 UI 骨架——主窗口、tab 页、视图停靠、拖拽、菜单、命令、选择广播、perspective 切换——全部由它实现功能插件只是往它定义的扩展点里填内容。

本月热点