def create_spinbox(self, v): sb = ScientificDoubleSpinBox(self.ui.table) sb.setKeyboardTracking(False) sb.setValue(float(v)) sb.valueChanged.connect(self.update_params) size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sb.setSizePolicy(size_policy) return sb
def createEditor(self, user_type, parent): # Normally in Qt, we'd use QVariant (like QVariant::Double) to compare # with the user_type integer. However, QVariant is not available in # PySide2, making us use roundabout methods to get the integer like # below. float_type = ( ScientificDoubleSpinBox.staticMetaObject.userProperty().userType() ) if user_type == float_type: return ScientificDoubleSpinBox(parent) return super().createEditor(user_type, parent)
def createEditor(self, user_type, parent): # Normally in Qt, we'd use QVariant (like QVariant::Double) to compare # with the user_type integer. However, QVariant is not available in # PySide2, making us use roundabout methods to get the integer like # below. def utype(w): return w.staticMetaObject.userProperty().userType() bool_type = utype(QCheckBox) float_type = utype(ScientificDoubleSpinBox) if user_type == bool_type: cb = QCheckBox(parent) # Force an update when the check state changes cb.toggled.connect(self.delegate.state_changed) return cb if user_type == float_type: return ScientificDoubleSpinBox(parent) return super().createEditor(user_type, parent)
def create_spin_box(self): sb = ScientificDoubleSpinBox() sb.setKeyboardTracking(False) sb.valueChanged.connect(self.element_modified) return sb
def create_thermal_factor_spinbox(self, v): sb = ScientificDoubleSpinBox(self.ui.table) sb.setKeyboardTracking(False) sb.setMinimum(THERMAL_FACTOR_MIN) sb.setMaximum(THERMAL_FACTOR_MAX) sb.setValue(v) sb.valueChanged.connect(self.update_config) size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sb.setSizePolicy(size_policy) self.thermal_factor_spinboxes.append(sb) return sb
def create_occupancy_spinbox(self, v): sb = ScientificDoubleSpinBox(self.ui.table) sb.setKeyboardTracking(False) sb.setMinimum(OCCUPATION_MIN) sb.setMaximum(OCCUPATION_MAX) sb.setValue(v) sb.valueChanged.connect(self.update_config) size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sb.setSizePolicy(size_policy) self.occupancy_spinboxes.append(sb) return sb