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 qMRMLSubjectHierarchyComboBox, qMRMLSubjectHierarchyTreeView
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) == qMRMLSubjectHierarchyTreeView and isNodeOrUnionOfNodes(datatype)
15
16 @staticmethod
17 def create(widget, datatype):
18 if qMRMLSubjectHierarchyTreeViewToNodeConnector.canRepresent(widget, datatype):
20 return None
21
22 def __init__(self, widget: qMRMLSubjectHierarchyTreeView, datatype):
23 super().__init__()
24 self._widget: qMRMLSubjectHierarchyTreeView = widget
25 self._widget.nodeTypes = getNodeTypes(datatype)
26
27 def _connect(self):
28 self._widget.currentItemsChanged.connect(self.changed)
29
30 def _disconnect(self):
31 self._widget.currentItemsChanged.disconnect(self.changed)
32
33 def widget(self) -> qMRMLSubjectHierarchyTreeView:
34 return self._widget
35
36 def read(self):
37 return self._widget.currentNode()
38
39 def write(self, value) -> None:
40 if value is not None:
41 self._widget.setCurrentNode(value)
42 else:
43 self._widget.clearSelection()
44
45
46@parameterNodeGuiConnector
48 @staticmethod
49 def canRepresent(widget, datatype) -> bool:
50 return type(widget) == qMRMLSubjectHierarchyComboBox and isNodeOrUnionOfNodes(datatype)
51
52 @staticmethod
53 def create(widget, datatype):
54 if qMRMLSubjectHierarchyComboBoxToNodeConnector.canRepresent(widget, datatype):
56 return None
57
58 def __init__(self, widget: qMRMLSubjectHierarchyComboBox, datatype):
59 super().__init__()
60 self._widget: qMRMLSubjectHierarchyComboBox = widget
61 self._widget.nodeTypes = getNodeTypes(datatype)
62
63 def _connect(self):
64 self._widget.currentItemChanged.connect(self.changed)
65
66 def _disconnect(self):
67 self._widget.currentItemChanged.disconnect(self.changed)
68
69 def widget(self) -> qMRMLSubjectHierarchyComboBox:
70 return self._widget
71
72 def read(self):
73 return self._widget.currentNode()
74
75 def write(self, value) -> None:
76 if value is not None:
77 self._widget.setCurrentNode(value)
78 else:
79 self._widget.clearSelection()