def initializePage(self): _ExpandableOptionsWizardPage.initializePage(self) # Clear self._widgets.clear() limits_text = {} # Populate combo box it = self._iter_widgets('pymontecarlo.ui.gui.options.limit', 'LIMITS') for limit_class, widget_class, programs in it: widget = widget_class() self._widgets[limit_class] = widget_class program_text = ', '.join(map(attrgetter('name'), programs)) text = '{0} ({1})'.format(widget.accessibleName(), program_text) limits_text[limit_class] = text del widget cb_model = self._LimitComboBoxModel(limits_text) self._cb_limit.setModel(cb_model) self._cb_limit.setCurrentIndex(0) # Add limit(s) tbl_model = self._tbl_limit.model() tbl_model.clear() for limit in self.options().limits: tbl_model.append(limit)
def initializePage(self): _ExpandableOptionsWizardPage.initializePage(self) tbl_model = self._tbl_detector.model() cb_model = self._cb_detector.model() # Clear self._widgets.clear() tbl_model.clear() cb_model.clear() # Populate combo box it = self._iter_widgets('pymontecarlo.ui.gui.options.detector', 'DETECTORS') for clasz, widget_class, programs in it: widget = widget_class() self._widgets[clasz] = widget_class program_text = ', '.join(map(attrgetter('name'), programs)) text = '{0} ({1})'.format(widget.accessibleName(), program_text) cb_model.append(text, clasz, widget_class) del widget self._cb_detector.setCurrentIndex(0) # Add detector(s) for key, detectors in self.options().detectors.items(): detectors = np.array(detectors, ndmin=1) for detector in detectors: if not detector.__class__ in self._widgets: continue tbl_model.append(key, detector)
def initializePage(self): _ExpandableOptionsWizardPage.initializePage(self) # Populate combo boxes model_types = set() models_text = {} for model, programs, defaults in self._iter_models(): programs_text = [] for program in programs: program_text = program.name if program in defaults: program_text += '*' programs_text.append(program_text) program_text = ', '.join(programs_text) text = '{0} ({1})'.format(str(model), program_text) model_types.add(model.type) models_text[model] = text model_types = sorted(model_types, key=attrgetter('name')) cb_model_type = self._ModelTypeComboBoxModel(model_types) self._cb_model_type.setModel(cb_model_type) self._cb_model_type.setCurrentIndex(0) cb_model = self._ModelComboBoxModel(models_text) self._cb_model.setModel(cb_model) cb_model.setModelType(cb_model_type.modelType(0)) self._cb_model.setCurrentIndex(0) # Add model(s) self._tbl_model.clear() self._tbl_model.addModels(self.options().models)
def initializePage(self): _ExpandableOptionsWizardPage.initializePage(self) # Clear self._widgets.clear() for i in reversed(range(self._cb_beam.count())): self._cb_beam.removeItem(i) self._wdg_beam.removeWidget(self._wdg_beam.widget(i)) # Populate combo box it = self._iter_widgets("pymontecarlo.ui.gui.options.beam", "BEAMS") for clasz, widget_class, programs in it: widget = widget_class() self._widgets[clasz] = widget program_text = ", ".join(map(attrgetter("name"), programs)) text = "{0} ({1})".format(widget.accessibleName(), program_text) self._cb_beam.addItem(text) self._wdg_beam.addWidget(widget) widget.setParticlesEnabled(False) for program in programs: converter = program.converter_class for particle in converter.PARTICLES: widget.setParticleEnabled(particle, True) widget.valueChanged.connect(self.valueChanged) # Select beam beam = self.options().beam widget = self._widgets.get(beam.__class__) if widget is None: widget = next(iter(self._widgets.values())) widget.setValue(beam) self._wdg_beam.setCurrentWidget(widget) self._cb_beam.setCurrentIndex(self._wdg_beam.currentIndex())
def initializePage(self): _ExpandableOptionsWizardPage.initializePage(self) # Clear self._widgets.clear() for i in reversed(range(self._cb_geometry.count())): self._cb_geometry.removeItem(i) self._wdg_geometry.removeWidget(self._wdg_geometry.widget(i)) # Populate combo box it = self._iter_widgets('pymontecarlo.ui.gui.options.geometry', 'GEOMETRIES') for clasz, widget_class, programs in it: widget = widget_class() widget.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored) widget.setMaterialClass(self._find_material_class(programs)) self._widgets[clasz] = widget program_text = ', '.join(map(attrgetter('name'), programs)) text = '{0} ({1})'.format(widget.accessibleName(), program_text) self._cb_geometry.addItem(text) self._wdg_geometry.addWidget(widget) widget.valueChanged.connect(self.valueChanged) # Select geometry geometry = self.options().geometry widget = self._widgets.get(geometry.__class__) if widget is None: widget = next(iter(self._widgets.values())) widget.setValue(geometry) self._wdg_geometry.setCurrentWidget(widget) self._cb_geometry.setCurrentIndex(self._wdg_geometry.currentIndex())