pieper
(Steve Pieper (Isomics, Inc.))
November 27, 2025, 6:42pm
2
Thanks for the feedback about the utility of lightbox mode. The mode was removed because it was carried forward from an older generation of Slicer infrastructure and difficult to maintain while modernizing other features. There’s some more detail, and a suggested alternative in the links below. It would be great to support your use case with one of the more sustainable implementations.
@lassoan @Thibault_Pelletier
Slicer can show a lightbox view of slices (mosaic of slightly shifted views along the slice normal). The view can be activated in slice view controller by clicking on the lightbox icon and selecting number of views to show.
[image]
However, it seems there are many issues with lightbox views:
interaction within lightbox views is extremely difficult to implement correctly (see for example this issue fiducial shows in wrong lightbox cell · Issue #1690 · Slicer/Slicer · GitHub - which explains w…
opened 01:30PM - 20 Mar 20 UTC
Type: Enhancement
Priority: Low
Support of lightbox views in displayable managers would introduce a lot of compl… exity. Updating a lightbox view is also very slow.
Replace dynamic rendering of lightbox views with generation of a single static image. Probably screen capture module can be upgraded to implement this.
See discussion here: https://discourse.slicer.org/t/who-uses-lightbox-view/495
main ← Thibault-Pelletier:add_scripted_lightbox_proxy
opened 08:37AM - 07 Oct 25 UTC
Add scripted light box renderer manager proxy to allow python based applications… , including slicer-trame, to provide light box renderer and activate associated features including cross hair display.
@jcfr & @lassoan let me know if this should go in Slicer or if I should put that in the SlicerTrame extension.
main ← jcfr:remove-lightbox-feature
opened 06:41PM - 07 Oct 25 UTC
This removes LightBox configuration from the slice view controller, and displaya… ble managers.
- UI: remove LightBox actions/controls from slice controller and info widgets.
- Display managers: remove `vtkMRMLLightBoxRendererManagerProxy` and wiring.
- Coordinates: XYZ conversions now always set z = 0.0 (was LightBox id). X/Y remain pane-local by subtracting the renderer origin.
- Crosshair: add the actor to the default slice renderer and drop LightBox renderer switching logic.
- API:
- Mark `vtkMRMLAbstractDisplayableManager::GetRenderer(int)` as deprecated (forwards to `GetRenderer()`; `idx` ignored).
- Keep `SetCrosshairRAS(..., int)` but ignore the id parameter and document it as deprecated.
- Mark `qMRMLSliceInformationWidget::setLightboxLayoutRows`/`setLightboxLayoutColumns` as deprecated
- Mark `qMRMLSliceControllerWidget::setLightbox`/`setLightboxTo*` as deprecated
Related issue(s) and pull-request(s):
- https://github.com/Slicer/Slicer/pull/8773
- https://github.com/Slicer/Slicer/issues/4749