diff options
Diffstat (limited to 'examples/plotInteractiveImageROI.py')
-rw-r--r-- | examples/plotInteractiveImageROI.py | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/examples/plotInteractiveImageROI.py b/examples/plotInteractiveImageROI.py index c10bbf3..7254b7e 100644 --- a/examples/plotInteractiveImageROI.py +++ b/examples/plotInteractiveImageROI.py @@ -38,8 +38,10 @@ from silx.gui import qt from silx.gui.plot import Plot2D from silx.gui.plot.tools.roi import RegionOfInterestManager from silx.gui.plot.tools.roi import RegionOfInterestTableWidget +from silx.gui.plot.tools.roi import RoiModeSelectorAction from silx.gui.plot.items.roi import RectangleROI from silx.gui.plot.items import LineMixIn, SymbolMixIn +from silx.gui.plot.actions import control as control_actions def dummy_image(): @@ -54,16 +56,16 @@ def dummy_image(): app = qt.QApplication([]) # Start QApplication -backend = "matplotlib" -if "--opengl" in sys.argv: - backend = "opengl" - # Create the plot widget and add an image -plot = Plot2D(backend=backend) +plot = Plot2D() plot.getDefaultColormap().setName('viridis') plot.setKeepDataAspectRatio(True) plot.addImage(dummy_image()) +toolbar = qt.QToolBar() +toolbar.addAction(control_actions.OpenGLAction(parent=toolbar, plot=plot)) +plot.addToolBar(toolbar) + # Create the object controlling the ROIs and set it up roiManager = RegionOfInterestManager(plot) roiManager.setColor('pink') # Set the color of ROI @@ -105,11 +107,33 @@ for roiClass in roiManager.getSupportedRoiClasses(): action = roiManager.getInteractionModeAction(roiClass) roiToolbar.addAction(action) +class AutoHideToolBar(qt.QToolBar): + """A toolbar which hide itself if no actions are visible""" + + def actionEvent(self, event): + if event.type() == qt.QEvent.ActionChanged: + self._updateVisibility() + return qt.QToolBar.actionEvent(self, event) + + def _updateVisibility(self): + visible = False + for action in self.actions(): + if action.isVisible(): + visible = True + break + self.setVisible(visible) + +roiToolbarEdit = AutoHideToolBar() +modeSelectorAction = RoiModeSelectorAction() +modeSelectorAction.setRoiManager(roiManager) +roiToolbarEdit.addAction(modeSelectorAction) + # Add the region of interest table and the buttons to a dock widget widget = qt.QWidget() layout = qt.QVBoxLayout() widget.setLayout(layout) layout.addWidget(roiToolbar) +layout.addWidget(roiToolbarEdit) layout.addWidget(roiTable) |