Source code for napari_locan.widgets.widget_show_metadata
"""
Show metadata for a SMLM dataset.
QWidget plugin for showing metadata
for a single SMLM dataset (locdata.meta).
"""
import logging
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 ShowMetadataQWidget(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_metadata_text()
self._set_layout()
def _add_metadata_text(self) -> None:
self._metadata_text_edit = QPlainTextEdit()
self.smlm_data.index_changed_signal.connect(self._update_metadata_text)
self._metadata_layout = QHBoxLayout()
self._metadata_layout.addWidget(self._metadata_text_edit)
self.smlm_data.index_changed_signal.emit(self.smlm_data.index)
def _update_metadata_text(self) -> None:
if self.smlm_data.index != -1:
text = str(self.smlm_data.locdata.meta) # type: ignore
self._metadata_text_edit.setPlainText(text)
else:
self._metadata_text_edit.setPlainText("")
def _set_layout(self) -> None:
layout = QVBoxLayout()
layout.addLayout(self._metadata_layout)
self.setLayout(layout)