diff options
Diffstat (limited to 'src/silx/gui/plot/ComplexImageView.py')
-rw-r--r-- | src/silx/gui/plot/ComplexImageView.py | 117 |
1 files changed, 55 insertions, 62 deletions
diff --git a/src/silx/gui/plot/ComplexImageView.py b/src/silx/gui/plot/ComplexImageView.py index 7febd19..654a1c1 100644 --- a/src/silx/gui/plot/ComplexImageView.py +++ b/src/silx/gui/plot/ComplexImageView.py @@ -1,6 +1,6 @@ # /*########################################################################## # -# Copyright (c) 2017-2021 European Synchrotron Radiation Facility +# Copyright (c) 2017-2023 European Synchrotron Radiation Facility # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,10 +33,8 @@ __date__ = "24/04/2018" import logging -import collections import numpy -from ...utils.deprecation import deprecated from .. import qt, icons from .PlotWindow import Plot2D from . import items @@ -48,6 +46,7 @@ _logger = logging.getLogger(__name__) # Widgets + class _AmplitudeRangeDialog(qt.QDialog): """QDialog asking for the amplitude range to display.""" @@ -57,12 +56,9 @@ class _AmplitudeRangeDialog(qt.QDialog): It provides the new range as a 2-tuple: (max, delta) """ - def __init__(self, - parent=None, - amplitudeRange=None, - displayedRange=(None, 2)): + def __init__(self, parent=None, amplitudeRange=None, displayedRange=(None, 2)): super(_AmplitudeRangeDialog, self).__init__(parent) - self.setWindowTitle('Set Displayed Amplitude Range') + self.setWindowTitle("Set Displayed Amplitude Range") if amplitudeRange is not None: amplitudeRange = min(amplitudeRange), max(amplitudeRange) @@ -74,25 +70,24 @@ class _AmplitudeRangeDialog(qt.QDialog): if self._amplitudeRange is not None: min_, max_ = self._amplitudeRange - layout.addRow( - qt.QLabel('Data Amplitude Range: [%g, %g]' % (min_, max_))) + layout.addRow(qt.QLabel("Data Amplitude Range: [%g, %g]" % (min_, max_))) self._maxLineEdit = FloatEdit(parent=self) - self._maxLineEdit.validator().setBottom(0.) + self._maxLineEdit.validator().setBottom(0.0) self._maxLineEdit.setAlignment(qt.Qt.AlignRight) self._maxLineEdit.editingFinished.connect(self._rangeUpdated) - layout.addRow('Displayed Max.:', self._maxLineEdit) + layout.addRow("Displayed Max.:", self._maxLineEdit) - self._autoscale = qt.QCheckBox('autoscale') + self._autoscale = qt.QCheckBox("autoscale") self._autoscale.toggled.connect(self._autoscaleCheckBoxToggled) - layout.addRow('', self._autoscale) + layout.addRow("", self._autoscale) self._deltaLineEdit = FloatEdit(parent=self) - self._deltaLineEdit.validator().setBottom(1.) + self._deltaLineEdit.validator().setBottom(1.0) self._deltaLineEdit.setAlignment(qt.Qt.AlignRight) self._deltaLineEdit.editingFinished.connect(self._rangeUpdated) - layout.addRow('Displayed delta (log10 unit):', self._deltaLineEdit) + layout.addRow("Displayed delta (log10 unit):", self._deltaLineEdit) buttons = qt.QDialogButtonBox(self) buttons.addButton(qt.QDialogButtonBox.Ok) @@ -107,8 +102,7 @@ class _AmplitudeRangeDialog(qt.QDialog): self.rejected.connect(self._handleRejected) def _resetDialogToDefault(self): - """Set Widgets of the dialog from range information - """ + """Set Widgets of the dialog from range information""" max_, delta = self._defaultDisplayedRange if max_ is not None: # Not in autoscale @@ -116,7 +110,7 @@ class _AmplitudeRangeDialog(qt.QDialog): elif self._amplitudeRange is not None: # Autoscale with data displayedMax = self._amplitudeRange[1] else: # Autoscale without data - displayedMax = '' + displayedMax = "" if displayedMax == "": self._maxLineEdit.setText("") else: @@ -149,7 +143,7 @@ class _AmplitudeRangeDialog(qt.QDialog): """Handle autoscale checkbox state changes""" if checked: # Use default values if self._amplitudeRange is None: - max_ = '' + max_ = "" else: max_ = self._amplitudeRange[1] if max_ == "": @@ -167,21 +161,31 @@ class _ComplexDataToolButton(qt.QToolButton): :param plot: The :class:`ComplexImageView` to control """ - _MODES = collections.OrderedDict([ - (ImageComplexData.ComplexMode.ABSOLUTE, ('math-amplitude', 'Amplitude')), - (ImageComplexData.ComplexMode.SQUARE_AMPLITUDE, - ('math-square-amplitude', 'Square amplitude')), - (ImageComplexData.ComplexMode.PHASE, ('math-phase', 'Phase')), - (ImageComplexData.ComplexMode.REAL, ('math-real', 'Real part')), - (ImageComplexData.ComplexMode.IMAGINARY, - ('math-imaginary', 'Imaginary part')), - (ImageComplexData.ComplexMode.AMPLITUDE_PHASE, - ('math-phase-color', 'Amplitude and Phase')), - (ImageComplexData.ComplexMode.LOG10_AMPLITUDE_PHASE, - ('math-phase-color-log', 'Log10(Amp.) and Phase')) - ]) - - _RANGE_DIALOG_TEXT = 'Set Amplitude Range...' + _MODES = dict( + [ + (ImageComplexData.ComplexMode.ABSOLUTE, ("math-amplitude", "Amplitude")), + ( + ImageComplexData.ComplexMode.SQUARE_AMPLITUDE, + ("math-square-amplitude", "Square amplitude"), + ), + (ImageComplexData.ComplexMode.PHASE, ("math-phase", "Phase")), + (ImageComplexData.ComplexMode.REAL, ("math-real", "Real part")), + ( + ImageComplexData.ComplexMode.IMAGINARY, + ("math-imaginary", "Imaginary part"), + ), + ( + ImageComplexData.ComplexMode.AMPLITUDE_PHASE, + ("math-phase-color", "Amplitude and Phase"), + ), + ( + ImageComplexData.ComplexMode.LOG10_AMPLITUDE_PHASE, + ("math-phase-color-log", "Log10(Amp.) and Phase"), + ), + ] + ) + + _RANGE_DIALOG_TEXT = "Set Amplitude Range..." def __init__(self, parent=None, plot=None): super(_ComplexDataToolButton, self).__init__(parent=parent) @@ -207,16 +211,16 @@ class _ComplexDataToolButton(qt.QToolButton): self.setPopupMode(qt.QToolButton.InstantPopup) self._modeChanged(self._plot2DComplex.getComplexMode()) - self._plot2DComplex.sigVisualizationModeChanged.connect( - self._modeChanged) + self._plot2DComplex.sigVisualizationModeChanged.connect(self._modeChanged) def _modeChanged(self, mode): """Handle change of visualization modes""" icon, text = self._MODES[mode] self.setIcon(icons.getQIcon(icon)) - self.setToolTip('Display the ' + text.lower()) + self.setToolTip("Display the " + text.lower()) self._rangeDialogAction.setEnabled( - mode == ImageComplexData.ComplexMode.LOG10_AMPLITUDE_PHASE) + mode == ImageComplexData.ComplexMode.LOG10_AMPLITUDE_PHASE + ) def _triggered(self, action): """Handle triggering of menu actions""" @@ -236,7 +240,8 @@ class _ComplexDataToolButton(qt.QToolButton): dialog = _AmplitudeRangeDialog( parent=self, amplitudeRange=dataRange, - displayedRange=self._plot2DComplex._getAmplitudeRangeInfo()) + displayedRange=self._plot2DComplex._getAmplitudeRangeInfo(), + ) dialog.sigRangeChanged.connect(self._rangeChanged) dialog.exec() dialog.sigRangeChanged.disconnect(self._rangeChanged) @@ -272,7 +277,7 @@ class ComplexImageView(qt.QWidget): def __init__(self, parent=None): super(ComplexImageView, self).__init__(parent) if parent is None: - self.setWindowTitle('ComplexImageView') + self.setWindowTitle("ComplexImageView") self._plot2D = Plot2D(self) @@ -284,14 +289,13 @@ class ComplexImageView(qt.QWidget): # Create and add image to the plot self._plotImage = ImageComplexData() - self._plotImage.setName('__ComplexImageView__complex_image__') + self._plotImage.setName("__ComplexImageView__complex_image__") self._plotImage.sigItemChanged.connect(self._itemChanged) self._plot2D.addItem(self._plotImage) - self._plot2D.setActiveImage(self._plotImage.getName()) + self._plot2D.setActiveImage(self._plotImage) - toolBar = qt.QToolBar('Complex', self) - toolBar.addWidget( - _ComplexDataToolButton(parent=self, plot=self)) + toolBar = qt.QToolBar("Complex", self) + toolBar.addWidget(_ComplexDataToolButton(parent=self, plot=self)) self._plot2D.insertToolBar(self._plot2D.getProfileToolbar(), toolBar) @@ -344,8 +348,10 @@ class ComplexImageView(qt.QWidget): :rtype: numpy.ndarray of float with 2 dims or RGBA image (uint8). """ mode = self.getComplexMode() - if mode in (self.ComplexMode.AMPLITUDE_PHASE, - self.ComplexMode.LOG10_AMPLITUDE_PHASE): + if mode in ( + self.ComplexMode.AMPLITUDE_PHASE, + self.ComplexMode.LOG10_AMPLITUDE_PHASE, + ): return self._plotImage.getRgbaImageData(copy=copy) else: return self._plotImage.getData(copy=copy) @@ -354,19 +360,6 @@ class ComplexImageView(qt.QWidget): Mode = ComplexMode - @classmethod - @deprecated(replacement='supportedComplexModes', since_version='0.11.0') - def getSupportedVisualizationModes(cls): - return cls.supportedComplexModes() - - @deprecated(replacement='setComplexMode', since_version='0.11.0') - def setVisualizationMode(self, mode): - return self.setComplexMode(mode) - - @deprecated(replacement='getComplexMode', since_version='0.11.0') - def getVisualizationMode(self): - return self.getComplexMode() - # Image item proxy @staticmethod @@ -490,7 +483,7 @@ class ComplexImageView(qt.QWidget): :rtype: :class:`.items.Axis` """ - return self.getPlot().getYAxis(axis='left') + return self.getPlot().getYAxis(axis="left") def getGraphTitle(self): """Return the plot main title as a str.""" |