@@ -17,12 +17,11 @@ def __init__(self):
17
17
self .viewer = napari .current_viewer ()
18
18
layout = QVBoxLayout ()
19
19
20
- self .selectors = {}
21
20
self .image_selector_name1 = "Segmentation 1"
22
21
self .image_selector_name2 = "Segmentation 2"
23
22
# Create the image selection dropdown
24
- self .segmentation1_selector_widget = self .create_image_selector ( selector_name = self .image_selector_name1 )
25
- self .segmentation2_selector_widget = self .create_image_selector ( selector_name = self .image_selector_name2 )
23
+ self .segmentation1_selector_widget = self ._create_layer_selector ( self .image_selector_name1 , layer_type = "Labels" )
24
+ self .segmentation2_selector_widget = self ._create_layer_selector ( self .image_selector_name2 , layer_type = "Labels" )
26
25
27
26
# create save path
28
27
self .settings = self ._create_settings_widget ()
@@ -45,17 +44,26 @@ def __init__(self):
45
44
46
45
self .setLayout (layout )
47
46
48
- def get_selected_layer_data (self , selector_name ):
49
- """Return the data for the layer currently selected in a given selector."""
50
- if selector_name in self .selectors :
51
- selected_layer_name = self .selectors [selector_name ].currentText ()
52
- if selected_layer_name in self .viewer .layers :
53
- return self .viewer .layers [selected_layer_name ].data
54
- return None # Return None if layer not found
47
+ # def get_selected_layer_data(self, selector_name):
48
+ # """Return the data for the layer currently selected in a given selector."""
49
+ # if selector_name in self.layer_selectors:
50
+ # selector_widget = self.layer_selectors[selector_name]
51
+
52
+ # # Retrieve the QComboBox from the QWidget's layout
53
+ # image_selector = selector_widget.layout().itemAt(1).widget()
54
+
55
+ # if isinstance(image_selector, QComboBox):
56
+ # selected_layer_name = image_selector.currentText()
57
+ # if selected_layer_name in self.viewer.layers:
58
+ # return self.viewer.layers[selected_layer_name].data
59
+ # # selected_layer_name = self.layer_selectors[selector_name].currentText()
60
+ # # if selected_layer_name in self.viewer.layers:
61
+ # # return self.viewer.layers[selected_layer_name].data
62
+ # return None # Return None if layer not found
55
63
56
64
def on_measure_segmentation_to_object (self ):
57
- segmentation1_data = self .get_selected_layer_data (self .image_selector_name1 )
58
- segmentation2_data = self .get_selected_layer_data (self .image_selector_name2 )
65
+ segmentation1_data = self ._get_layer_selector_data (self .image_selector_name1 )
66
+ segmentation2_data = self ._get_layer_selector_data (self .image_selector_name2 )
59
67
if segmentation1_data is None or segmentation2_data is None :
60
68
show_info ("Please choose both segmentation layers." )
61
69
return
@@ -106,50 +114,50 @@ def on_measure_pairwise(self):
106
114
# layer_kwargs = {"colormap": "inferno", "blending": "additive"}
107
115
# return segmentation, layer_kwargs
108
116
109
- def create_image_selector (self , selector_name ):
110
- attribute_dict = {}
111
- viewer = self .viewer
112
- """Create an image selector widget for a specific layer attribute."""
113
- selector_widget = QWidget ()
114
- image_selector = QComboBox ()
115
- title_label = QLabel (f"Select Layer for { selector_name } :" )
117
+ # def create_image_selector(self, selector_name):
118
+ # attribute_dict = {}
119
+ # viewer = self.viewer
120
+ # """Create an image selector widget for a specific layer attribute."""
121
+ # selector_widget = QWidget()
122
+ # image_selector = QComboBox()
123
+ # title_label = QLabel(f"Select Layer for {selector_name}:")
116
124
117
- # Populate initial options
118
- self .update_selector (viewer , image_selector )
125
+ # # Populate initial options
126
+ # self.update_selector(viewer, image_selector)
119
127
120
- # Connect selection change to update image data in attribute_dict
121
- image_selector .currentIndexChanged .connect (
122
- lambda : self .update_image_data (viewer , image_selector , attribute_dict , selector_name )
123
- )
128
+ # # Connect selection change to update image data in attribute_dict
129
+ # image_selector.currentIndexChanged.connect(
130
+ # lambda: self.update_image_data(viewer, image_selector, attribute_dict, selector_name)
131
+ # )
124
132
125
- # Update selector on layer events
126
- viewer .layers .events .inserted .connect (lambda event : self .update_selector (viewer , image_selector ))
127
- viewer .layers .events .removed .connect (lambda event : self .update_selector (viewer , image_selector ))
133
+ # # Update selector on layer events
134
+ # viewer.layers.events.inserted.connect(lambda event: self.update_selector(viewer, image_selector))
135
+ # viewer.layers.events.removed.connect(lambda event: self.update_selector(viewer, image_selector))
128
136
129
- # Store this combo box in the selectors dictionary
130
- self .selectors [selector_name ] = image_selector
137
+ # # Store this combo box in the selectors dictionary
138
+ # self.selectors[selector_name] = image_selector
131
139
132
- # Set up layout
133
- layout = QVBoxLayout ()
134
- layout .addWidget (title_label )
135
- layout .addWidget (image_selector )
136
- selector_widget .setLayout (layout )
137
-
138
- return selector_widget
139
-
140
- def update_selector (self , viewer , selector ):
141
- """Update a single selector with the current image layers in the viewer."""
142
- selector .clear ()
143
- image_layers = [layer .name for layer in viewer .layers ] # if isinstance(layer, napari.layers.Image)
144
- selector .addItems (image_layers )
145
-
146
- def update_image_data (self , viewer , selector , attribute_dict , attribute_name ):
147
- """Update the specified attribute in the attribute_dict with selected layer data."""
148
- selected_layer_name = selector .currentText ()
149
- if selected_layer_name in viewer .layers :
150
- attribute_dict [attribute_name ] = viewer .layers [selected_layer_name ].data
151
- else :
152
- attribute_dict [attribute_name ] = None # Reset if no valid selection
140
+ # # Set up layout
141
+ # layout = QVBoxLayout()
142
+ # layout.addWidget(title_label)
143
+ # layout.addWidget(image_selector)
144
+ # selector_widget.setLayout(layout)
145
+
146
+ # return selector_widget
147
+
148
+ # def update_selector(self, viewer, selector):
149
+ # """Update a single selector with the current image layers in the viewer."""
150
+ # selector.clear()
151
+ # image_layers = [layer.name for layer in viewer.layers] # if isinstance(layer, napari.layers.Image)
152
+ # selector.addItems(image_layers)
153
+
154
+ # def update_image_data(self, viewer, selector, attribute_dict, attribute_name):
155
+ # """Update the specified attribute in the attribute_dict with selected layer data."""
156
+ # selected_layer_name = selector.currentText()
157
+ # if selected_layer_name in viewer.layers:
158
+ # attribute_dict[attribute_name] = viewer.layers[selected_layer_name].data
159
+ # else:
160
+ # attribute_dict[attribute_name] = None # Reset if no valid selection
153
161
154
162
def _create_settings_widget (self ):
155
163
setting_values = QWidget ()
0 commit comments