Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
guiConnectors.py
Go to the documentation of this file.
1from slicer import qSlicerSimpleMarkupsWidget
2from slicer.parameterNodeWrapper import (
3 isNodeOrUnionOfNodes,
4 getNodeTypes,
5 GuiConnector,
6 parameterNodeGuiConnector,
7)
8
9
10@parameterNodeGuiConnector
12 @staticmethod
13 def canRepresent(widget, datatype) -> bool:
14 return type(widget) == qSlicerSimpleMarkupsWidget and isNodeOrUnionOfNodes(datatype)
15
16 @staticmethod
17 def create(widget, datatype):
18 if qSlicerSimpleMarkupsWidgetToNodeConnector.canRepresent(widget, datatype):
19 return qSlicerSimpleMarkupsWidgetToNodeConnector(widget, datatype)
20 return None
21
22 def __init__(self, widget: qSlicerSimpleMarkupsWidget, datatype):
23 super().__init__()
24 self._widget: qSlicerSimpleMarkupsWidget = widget
25 self._widget.markupsSelectorComboBox().nodeTypes = getNodeTypes(datatype)
26
27 def _connect(self):
28 self._widget.markupsNodeChanged.connect(self.changed)
29
30 def _disconnect(self):
31 self._widget.markupsNodeChanged.disconnect(self.changed)
32
33 def widget(self) -> qSlicerSimpleMarkupsWidget:
34 return self._widget
35
36 def read(self):
37 return self._widget.currentNode()
38
39 def write(self, value) -> None:
40 self._widget.setCurrentNode(value)