class DetectorSpectrometerWidget(_DetectorWidget): def __init__(self, parent=None): _DetectorWidget.__init__(self, DetectorSpectrometer, parent) def _init_ui(self): # Widgets self._txt_channel_count = NumericalAttributeLineEdit(self.CLASS.channel_count) self._txt_channel_count.setFormat('{0:d}') self._wdg_calibration = CalibrationWidget() self._cb_collection_mode = QComboBox() self._cb_collection_mode.addItems([None] + list(_COLLECTION_MODES)) # Layout layout = _DetectorWidget._init_ui(self) layout.insertRow(0, '<i>Channel count</i>', self._txt_channel_count) layout.insertRow(1, '<i>Calibration</i>', self._wdg_calibration) layout.addRow('Collection mode', self._cb_collection_mode) # Signals self._txt_channel_count.textEdited.connect(self.edited) self._wdg_calibration.edited.connect(self.edited) self._cb_collection_mode.currentIndexChanged.connect(self.edited) return layout def _create_parameter(self): return self.CLASS(1, CalibrationConstant('Quantity', 'm', 0.0)) def parameter(self, parameter=None): parameter = _DetectorWidget.parameter(self, parameter) parameter.channel_count = self._txt_channel_count.text() parameter.calibration = self._wdg_calibration.calibration() parameter.collection_mode = self._cb_collection_mode.currentText() return parameter def setParameter(self, condition): _DetectorWidget.setParameter(self, condition) self._txt_channel_count.setText(condition.channel_count) self._wdg_calibration.setCalibration(condition.calibration) self._cb_collection_mode.setCurrentIndex(self._cb_collection_mode.findText(condition.collection_mode)) def setReadOnly(self, state): _DetectorWidget.setReadOnly(self, state) self._txt_channel_count.setReadOnly(state) self._wdg_calibration.setReadOnly(state) self._cb_collection_mode.setEnabled(not state) def isReadOnly(self): return _DetectorWidget.isReadOnly(self) and \ self._txt_channel_count.isReadOnly() and \ self._wdg_calibration.isReadOnly() and \ not self._cb_collection_mode.isEnabled() def hasAcceptableInput(self): return _DetectorWidget.hasAcceptableInput(self) and \ self._txt_channel_count.hasAcceptableInput() and \ self._wdg_calibration.hasAcceptableInput()
def _init_ui(self): # Widgets self._txt_channel_count = NumericalAttributeLineEdit(self.CLASS.channel_count) self._txt_channel_count.setFormat('{0:d}') self._wdg_calibration = CalibrationWidget() self._cb_collection_mode = QComboBox() self._cb_collection_mode.addItems([None] + list(_COLLECTION_MODES)) # Layout layout = _DetectorWidget._init_ui(self) layout.insertRow(0, '<i>Channel count</i>', self._txt_channel_count) layout.insertRow(1, '<i>Calibration</i>', self._wdg_calibration) layout.addRow('Collection mode', self._cb_collection_mode) # Signals self._txt_channel_count.textEdited.connect(self.edited) self._wdg_calibration.edited.connect(self.edited) self._cb_collection_mode.currentIndexChanged.connect(self.edited) return layout