Source code for magicclass.ext.napari.viewer
from __future__ import annotations
from typing import TYPE_CHECKING
from qtpy import QtWidgets as QtW
from qtpy.QtCore import Qt
from napari.components.viewer_model import ViewerModel
from napari.qt import QtViewer
from ...widgets import FreeWidget
if TYPE_CHECKING:
from napari import layers as nl
class QtLayerWidget(QtW.QSplitter):
def __init__(self, parent: QtViewerWidget):
super().__init__(Qt.Orientation.Vertical, parent)
layercontrol = parent._qt_viewer.dockLayerControls.widget()
self.addWidget(layercontrol)
layerlist = parent._qt_viewer.dockLayerList.widget()
self.addWidget(layerlist)
class QtViewerWidget(QtW.QSplitter):
def __init__(self):
super().__init__()
self._viewer_model = ViewerModel(title="Model")
self._qt_viewer = QtViewer(self._viewer_model)
self._layer_widget = QtLayerWidget(self)
self.addWidget(self._layer_widget)
self.addWidget(self._qt_viewer)
[docs]class ViewerWidget(FreeWidget):
def __init__(self):
super().__init__()
self._qtwidget = QtViewerWidget()
self.set_widget(self._qtwidget)
@property
def layers(self):
return self._qtwidget._viewer_model.layers
@property
def dims(self):
return self._qtwidget._viewer_model.dims
@property
def axes(self):
return self._qtwidget._viewer_model.axes
@property
def camera(self):
return self._qtwidget._viewer_model.camera
@property
def cursor(self):
return self._qtwidget._viewer_model.cursor
@property
def grid(self):
return self._qtwidget._viewer_model.grid
@property
def scale_bar(self):
return self._qtwidget._viewer_model.scale_bar
@property
def text_overlay(self):
return self._qtwidget._viewer_model.text_overlay
@property
def cursor(self):
return self._qtwidget._viewer_model.cursor
[docs] def add_image(self, *args, **kwargs) -> nl.Image:
return self._qtwidget._viewer_model.add_image(*args, **kwargs)
[docs] def add_shapes(self, *args, **kwargs) -> nl.Shapes:
return self._qtwidget._viewer_model.add_shapes(*args, **kwargs)
[docs] def add_points(self, *args, **kwargs) -> nl.Points:
return self._qtwidget._viewer_model.add_points(*args, **kwargs)
[docs] def add_vectors(self, *args, **kwargs) -> nl.Vectors:
return self._qtwidget._viewer_model.add_vectors(*args, **kwargs)
[docs] def add_labels(self, *args, **kwargs) -> nl.Labels:
return self._qtwidget._viewer_model.add_labels(*args, **kwargs)
[docs] def add_surface(self, *args, **kwargs) -> nl.Surface:
return self._qtwidget._viewer_model.add_surface(*args, **kwargs)
[docs] def add_tracks(self, *args, **kwargs) -> nl.Tracks:
return self._qtwidget._viewer_model.add_tracks(*args, **kwargs)