fix(vtk): 切片 widget InteractionOff —— 修点击选中/双击/绕点旋转全失效

实测根因: vtkImagePlaneWidget 默认消费落在切片面上的左键(窗位/光标), 自定义
PickInteractorStyle 收不到 → 单击选中/双击正视/绕点旋转/滚轮推进选中项 全失效;
滚轮看似只对最后新增切片有效, 实为选中从未改变(addSlice 设的 last)。
关掉 widget 自身交互(Interaction off): 其事件回调提前 return 不设 AbortFlag →
事件穿透到样式; 切片面 actor 可被 cellPicker 拾取 → 选中/双击/旋转恢复。切面移动由滚轮 advance 驱动。
This commit is contained in:
gaozheng 2026-06-16 09:57:34 +08:00
parent 29710a8484
commit ff3ce27978
1 changed files with 4 additions and 0 deletions

View File

@ -76,6 +76,10 @@ SliceTool::SliceTool(vtkImageData* image, vtkRenderWindowInteractor* interactor,
}
widget_->On();
// 关闭 widget 自身的鼠标交互(窗位/光标/拖动):否则它会"吃掉"落在切片面上的左键,
// 自定义 PickInteractorStyle 收不到 → 单击选中/双击正视/绕点旋转全失效(实测根因)。
// 关掉后切片仍正常显示,点击穿透到样式;切面移动改由滚轮(advance)驱动。
widget_->InteractionOff();
}
SliceTool::~SliceTool() { close(); }