class PhotonEmissionMapDetectorWidget(_PhotonDelimitedDetectorWidget): def __init__(self, parent=None): _PhotonDelimitedDetectorWidget.__init__(self, parent) self.setAccessibleName("Photon emission map") def _initUI(self): # Widgets self._lbl_xbins = QLabel('X bins') self._lbl_xbins.setStyleSheet("color: blue") self._txt_xbins = NumericalParameterWidget(PhotonEmissionMapDetector.xbins) self._lbl_ybins = QLabel('Y bins') self._lbl_ybins.setStyleSheet("color: blue") self._txt_ybins = NumericalParameterWidget(PhotonEmissionMapDetector.ybins) self._lbl_zbins = QLabel('Z bins') self._lbl_zbins.setStyleSheet("color: blue") self._txt_zbins = NumericalParameterWidget(PhotonEmissionMapDetector.zbins) # Layouts layout = _PhotonDelimitedDetectorWidget._initUI(self) layout.addRow(self._lbl_xbins, self._txt_xbins) layout.addRow(self._lbl_ybins, self._txt_ybins) layout.addRow(self._lbl_zbins, self._txt_zbins) return layout def value(self): elevation_rad = self._getElevationValues() azimuth_rad = self._getAzimuthValues() xbins = self._txt_xbins.values() ybins = self._txt_ybins.values() zbins = self._txt_zbins.values() return PhotonEmissionMapDetector(elevation_rad, azimuth_rad, xbins, ybins, zbins) def setValue(self, value): _PhotonDelimitedDetectorWidget.setValue(self, value) self._txt_xbins.setValues(value.xbins) self._txt_ybins.setValues(value.ybins) self._txt_zbins.setValues(value.zbins) def setReadOnly(self, state): _PhotonDelimitedDetectorWidget.setReadOnly(self, state) style = 'color: none' if state else 'color: blue' self._lbl_xbins.setStyleSheet(style) self._lbl_ybins.setStyleSheet(style) self._lbl_zbins.setStyleSheet(style)
class ShowersLimitWidget(_LimitWidget): def __init__(self, parent=None): _LimitWidget.__init__(self, parent) self.setAccessibleName('Showers') def _initUI(self): # Widgets self._lbl_showers = QLabel('Number of electron showers') self._lbl_showers.setStyleSheet("color: blue") self._txt_showers = NumericalParameterWidget(ShowersLimit.showers) # Layouts layout = _LimitWidget._initUI(self) layout.addRow(self._lbl_showers, self._txt_showers) return layout def value(self): return ShowersLimit(showers=self._txt_showers.values()) def setValue(self, value): if hasattr(value, 'showers'): self._txt_showers.setValues(value.showers) def setReadOnly(self, state): _LimitWidget.setReadOnly(self, state) style = 'color: none' if state else 'color: blue' self._lbl_showers.setStyleSheet(style)