Source code for napari_locan.widgets.widget_show_properties
"""
Show locdata properties for a SMLM dataset.
QWidget plugin for showing the aggregated properties
for a single SMLM dataset (locdata.properties).
"""
import logging
import pprint
from napari.viewer import Viewer
from qtpy.QtWidgets import (
QHBoxLayout,
QPlainTextEdit,
QVBoxLayout,
QWidget,
)
from napari_locan import smlm_data
from napari_locan.data_model.smlm_data import SmlmData
logger = logging.getLogger(__name__)
[docs]
class ShowPropertiesQWidget(QWidget): # type: ignore
def __init__(self, napari_viewer: Viewer, smlm_data: SmlmData = smlm_data):
super().__init__()
self.viewer = napari_viewer
self.smlm_data = smlm_data
self._add_properties_text()
self._set_layout()
def _add_properties_text(self) -> None:
self._properties_text_edit = QPlainTextEdit()
self.smlm_data.index_changed_signal.connect(self._update_properties_text)
self._properties_layout = QHBoxLayout()
self._properties_layout.addWidget(self._properties_text_edit)
self.smlm_data.index_changed_signal.emit(self.smlm_data.index)
def _update_properties_text(self) -> None:
if self.smlm_data.index != -1:
text = pprint.pformat(self.smlm_data.locdata.properties) # type: ignore
self._properties_text_edit.setPlainText(text)
else:
self._properties_text_edit.setPlainText("")
def _set_layout(self) -> None:
layout = QVBoxLayout()
layout.addLayout(self._properties_layout)
self.setLayout(layout)