Source code for est.gui.unit.energy

"""Tools to select energy unit"""

from silx.gui import qt
from est.units import ur


[docs] class EnergyUnitSelector(qt.QComboBox): """Simple class to define a unit for energy""" def __init__(self, parent=None): qt.QComboBox.__init__(self, parent) for unit in ("eV", "keV", "J", "kJ"): self.addItem(unit)
[docs] def getUnit(self): current_unit = self.currentText() if current_unit == "eV": return ur.eV elif current_unit == "keV": return ur.keV elif current_unit == "J": return ur.J elif current_unit == "kJ": return ur.kJ else: raise ValueError("current unit is not supported")
[docs] def setUnit(self, unit: str) -> None: if unit in ("eV", "keV", "J", "kJ"): txt = unit elif unit == ur.eV: txt = "eV" elif unit == ur.keV: txt = "keV" elif unit == ur.J: txt = "J" elif unit == ur.kJ: txt = "kJ" else: raise ValueError("Given unit is not managed: {}".format(unit)) index = self.findText(txt) if index >= 0: self.setCurrentIndex(index)