コード例 #1
0
 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)
コード例 #2
0
ファイル: bridge.py プロジェクト: JanDeVisser/pygrumble
 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
コード例 #3
0
 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)
コード例 #4
0
    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)
コード例 #5
0
    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)