class _PhotonDistributionResultOptionsToolItem(_ResultToolItem): def _initUI(self): # Variables result = self.result() transitions = sorted(result.iter_transitions()) transition0 = transitions[0] model = _TransitionListModel(transitions) # Widgets self._chk_errorbar = QCheckBox("Show error bars") self._chk_errorbar.setChecked(True) self._cb_transition = QComboBox() self._cb_transition.setModel(model) self._cb_transition.setCurrentIndex(0) self._chk_pg = QCheckBox("No absorption, no fluorescence") state = result.exists(transition0, True, False, False, False) self._chk_pg.setEnabled(state) self._chk_pg.setChecked(state) self._chk_eg = QCheckBox("With absorption, no fluorescence") state = result.exists(transition0, True, True, False, False) self._chk_eg.setEnabled(state) self._chk_eg.setChecked(state) self._chk_pt = QCheckBox("No absorption, with fluorescence") state = result.exists(transition0, True, False, True, True) self._chk_pt.setEnabled(state) self._chk_pt.setChecked(state) self._chk_et = QCheckBox("With absorption, with fluorescence") state = result.exists(transition0, True, True, True, True) self._chk_et.setEnabled(state) self._chk_et.setChecked(state) # Layouts layout = _ResultToolItem._initUI(self) layout.addRow(self._chk_errorbar) layout.addRow("Transition", self._cb_transition) boxlayout = QVBoxLayout() boxlayout.addWidget(self._chk_pg) boxlayout.addWidget(self._chk_eg) boxlayout.addWidget(self._chk_pt) boxlayout.addWidget(self._chk_et) box_generated = QGroupBox("Curves") box_generated.setLayout(boxlayout) layout.addRow(box_generated) # Signals self._cb_transition.currentIndexChanged.connect(self._onTransitionChanged) self._chk_pg.stateChanged.connect(self.stateChanged) self._chk_eg.stateChanged.connect(self.stateChanged) self._chk_pt.stateChanged.connect(self.stateChanged) self._chk_et.stateChanged.connect(self.stateChanged) self._chk_errorbar.stateChanged.connect(self.stateChanged) return layout def _onTransitionChanged(self): result = self.result() index = self._cb_transition.currentIndex() transition = self._cb_transition.model().transition(index) self._chk_pg.setEnabled(result.exists(transition, True, False, False, False)) self._chk_eg.setEnabled(result.exists(transition, True, True, False, False)) self._chk_pt.setEnabled(result.exists(transition, True, False, True, True)) self._chk_et.setEnabled(result.exists(transition, True, True, True, True)) self.stateChanged.emit() def transition(self): index = self._cb_transition.currentIndex() return self._cb_transition.model().transition(index) def showConditions(self): return ( self._chk_pg.isChecked() and self._chk_pg.isEnabled(), self._chk_eg.isChecked() and self._chk_eg.isEnabled(), self._chk_pt.isChecked() and self._chk_pt.isEnabled(), self._chk_et.isChecked() and self._chk_et.isEnabled(), ) def showErrorbar(self): return self._chk_errorbar.isChecked()