44import numpy .typing as npt
55from magicgui import magicgui
66from magicgui .widgets import ComboBox
7+ from qtpy .QtWidgets import QWidget
78
89from .base import NapariMPLWidget
910from .util import Interval
@@ -20,8 +21,12 @@ class ScatterBaseWidget(NapariMPLWidget):
2021 # the scatter is plotted as a 2D histogram
2122 _threshold_to_switch_to_histogram = 500
2223
23- def __init__ (self , napari_viewer : napari .viewer .Viewer ):
24- super ().__init__ (napari_viewer )
24+ def __init__ (
25+ self ,
26+ napari_viewer : napari .viewer .Viewer ,
27+ parent : Optional [QWidget ] = None ,
28+ ):
29+ super ().__init__ (napari_viewer , parent = parent )
2530
2631 self .add_single_axes ()
2732 self .update_layers (None )
@@ -113,16 +118,21 @@ class FeaturesScatterWidget(ScatterBaseWidget):
113118 napari .layers .Vectors ,
114119 )
115120
116- def __init__ (self , napari_viewer : napari .viewer .Viewer ):
117- super ().__init__ (napari_viewer )
118- self ._key_selection_widget = magicgui (
121+ def __init__ (
122+ self ,
123+ napari_viewer : napari .viewer .Viewer ,
124+ parent : Optional [QWidget ] = None ,
125+ ):
126+ super ().__init__ (napari_viewer , parent = parent )
127+ self ._key_selection_function_gui = magicgui (
119128 self ._set_axis_keys ,
120129 x_axis_key = {"choices" : self ._get_valid_axis_keys },
121130 y_axis_key = {"choices" : self ._get_valid_axis_keys },
122131 call_button = "plot" ,
123132 )
124-
125- self .layout ().addWidget (self ._key_selection_widget .native )
133+ _key_selection_widget = self ._key_selection_function_gui .native
134+ _key_selection_widget .setParent (self )
135+ self .layout ().addWidget (_key_selection_widget )
126136
127137 @property
128138 def x_axis_key (self ) -> Optional [str ]:
@@ -231,7 +241,7 @@ def _on_update_layers(self) -> None:
231241 Called when the layer selection changes by ``self.update_layers()``.
232242 """
233243 if hasattr (self , "_key_selection_widget" ):
234- self ._key_selection_widget .reset_choices ()
244+ self ._key_selection_function_gui .reset_choices ()
235245
236246 # reset the axis keys
237247 self ._x_axis_key = None
0 commit comments