def __init__(self, name="", parent_dataset=None, ax=None): """ **Constructor** Keyword Arguments: - name {[type]} -- [description] (default: {""}) - parent_dataset {[type]} -- [description] (default: {None}) - ax {[type]} -- [description] (default: {None}) """ super().__init__(name, parent_dataset, ax) # add widgets specific to the theory tb = QToolBar() tb.setIconSize(QSize(24, 24)) self.linkMeGeaction = tb.addAction( QIcon(':/Icon8/Images/new_icons/linkGeMe.png'), 'Link Me-Ge') self.linkMeGeaction.setCheckable(True) self.linkMeGeaction.setChecked(False) lbl = QLabel("<P><b>rho</b> (g/cm<sup>3</sup>)</P></br>", self) tb.addWidget(lbl) self.txtrho = QLineEdit("%.4g"%self.parameters["rho0"].value) self.txtrho.setReadOnly(True) self.txtrho.setDisabled(True) dvalidator = QDoubleValidator() #prevent letters etc. dvalidator.setBottom(0) #minimum allowed value dvalidator.setTop(10) #maximum allowed value self.txtrho.setValidator(dvalidator) tb.addWidget(self.txtrho) self.thToolsLayout.insertWidget(0, tb) connection_id = self.linkMeGeaction.triggered.connect(self.linkMeGeaction_change) connection_id = self.txtrho.textEdited.connect(self.handle_txtrho_edited)
def _createValidator(self): validator = QDoubleValidator(self.parent) if "min" in self.config: validator.setBottom(int(self.config["min"])) if "max" in self.config: validator.setTop(int(self.config["max"])) if "decimals" in self.config: validator.setDecimals(int(self.config["decimals"])) return validator
def set_validator(self): if self.element.attribute("NumbersOnly") != "1": return doubleValitor = QDoubleValidator() if is_float(self.element.attribute("Min")): doubleValitor.setBottom((self.element.attribute("Min"))) if is_float(self.element.attribute("Max")): doubleValitor.setTop(float(self.element.attribute("Max"))) # doubleValitor.setDecimals(2) doubleValitor.setNotation(QDoubleValidator.StandardNotation) self.setValidator(doubleValitor)
def createWoundControlBox(self): self.woundControlBox = QGroupBox("Wound") checkBox = QCheckBox("Add Wound") checkBox.setTristate(False) checkBox.setChecked(False) layout = QVBoxLayout() self.woundArea = QLineEdit() horizbox = QHBoxLayout() geometryLine = QRadioButton("Line") geometryPolygon = QRadioButton("Polygon") geometryCircle = QRadioButton("Circle") geometryLine.setChecked(True) geometryLine.clicked.connect(self.setLine) geometryPolygon.clicked.connect(self.setPoly) geometryCircle.clicked.connect(self.setCircle) horizbox.addWidget(geometryLine, 0) horizbox.addWidget(geometryPolygon, 1) horizbox.addWidget(geometryCircle, 2) areaValidator = QDoubleValidator() areaValidator.setBottom(50.0) areaValidator.setTop(100000.0) self.woundArea.setValidator(areaValidator) self.woundArea.editingFinished.connect(self.toggleArea) # create wound angle editor widget self.angleEditor = QSlider(Qt.Horizontal) self.angleEditor.setMinimum(3) self.angleEditor.setMaximum(50) self.angleEditor.setSingleStep(1) self.angleEditor.setValue(1) self.angleEditor.setTickInterval(10) self.angleEditor.setTickPosition(QSlider.TicksBelow) self.angleEditor.sliderReleased.connect(self.toggleAngles) addWound = QPushButton('Add Wound') removeWound = QPushButton('Remove Wound') addWound.clicked.connect(self.setWoundTrue) removeWound.clicked.connect(self.setWoundFalse) self.cellGraphicsItems = list() layout.addWidget(self.woundArea, 0) layout.addLayout(horizbox) layout.addWidget(self.angleEditor, 1) layout.addWidget(addWound) layout.addWidget(removeWound) self.woundControlBox.setLayout(layout)
def createSimulationControlBox(self): self.simulationControlBox = QGroupBox("Simulation") # create editors for rule coefficients r1coefflabel = QLabel("Rule 1 Coefficient") self.r1coeffedit = QLineEdit() r2coefflabel = QLabel("Rule 2 Coefficient") self.r2coeffedit = QLineEdit() r3coefflabel = QLabel("Rule 3 Coefficient") self.r3coeffedit = QLineEdit() self.r1coeffedit.setPlaceholderText("0.01") self.r2coeffedit.setPlaceholderText("0.01") self.r3coeffedit.setPlaceholderText("0.01") # create validators for rule coefficient editors r1Validator = QDoubleValidator() r1Validator.setBottom(-1.1) r1Validator.setTop(1.1) r2Validator = QDoubleValidator() r2Validator.setBottom(-1.1) r2Validator.setTop(1.1) r3Validator = QDoubleValidator() r3Validator.setBottom(-1.1) r3Validator.setTop(1.1) self.r1coeffedit.setValidator(r1Validator) self.r2coeffedit.setValidator(r2Validator) self.r3coeffedit.setValidator(r3Validator) self.r1coeffedit.editingFinished.connect(self.changeR1Coeff) self.r2coeffedit.editingFinished.connect(self.changeR2Coeff) self.r3coeffedit.editingFinished.connect(self.changeR3Coeff) #self.woundArea.editingFinished.connect(self.toggleArea) #self.simulationControlBox = QGroupBox("Simulation") timeLabel = QLabel('Simulation Speed') radioButton1 = QRadioButton("0.5x Speed") radioButton2 = QRadioButton("1.0x Speed") radioButton3 = QRadioButton("1.5x Speed") radioButton4 = QRadioButton("2.0x Speed") radioButton5 = QRadioButton("5.0x Speed") radioButton6 = QRadioButton("10.0x Speed") radioButton2.setChecked(True) radioButton1.clicked.connect(self.toggleRadioOne) radioButton2.clicked.connect(self.toggleRadioTwo) radioButton3.clicked.connect(self.toggleRadioThree) radioButton4.clicked.connect(self.toggleRadioFour) radioButton5.clicked.connect(self.toggleRadioFive) radioButton6.clicked.connect(self.toggleRadioSix) startButton = QPushButton("Start Simulation") startButton.clicked.connect(self.startSim) stopButton = QPushButton("Stop Simulation") stopButton.clicked.connect(self.pauseSim) resetButton = QPushButton("Reset Simulation") layout = QVBoxLayout() layout.addWidget(self.r1coeffedit) layout.addWidget(self.r2coeffedit) layout.addWidget(self.r3coeffedit) layout.addWidget(radioButton1) layout.addWidget(radioButton2) layout.addWidget(radioButton3) layout.addWidget(radioButton4) layout.addWidget(radioButton5) layout.addWidget(radioButton6) layout.addWidget(startButton) layout.addWidget(stopButton) layout.addWidget(resetButton) self.simulationControlBox.setLayout(layout)