class CreatePatientDialog(QDialog): def __init__(self, classification, patient, infoLabel, parent=None): super(CreatePatientDialog, self).__init__(parent) self.setWindowTitle('Create new patient') layout = QVBoxLayout() self.setLayout(layout) self.setMinimumWidth(200) self.patient = patient self.classifyExercises = classification self.infoLabel = infoLabel self.subjectEdit = QLineEdit() self.subjectEdit.setFixedHeight(30) self.subjectEdit.setText('Jozsika') self.subjectEdit.setStyleSheet(CustomQStyles.lineEditStyle) self.ageEdit = QLineEdit() self.ageEdit.setFixedHeight(30) self.ageEdit.setValidator(QIntValidator()) self.ageEdit.setText('5') self.ageEdit.setStyleSheet(CustomQStyles.lineEditStyle) self.subjectButton = QPushButton('Add patient') self.subjectButton.setFixedHeight(30) self.subjectButton.setStyleSheet(CustomQStyles.outlineButtonStyle) self.subjectButton.clicked.connect(self.onSubjectSelected) self.subjectButton.setContentsMargins(5, 15, 5, 5) formContainer = QWidget() self.formLayout = QFormLayout() self.formLayout.addRow('Name', self.subjectEdit) self.formLayout.addRow('Age', self.ageEdit) self.formLayout.addWidget(self.subjectButton) self.formLayout.setFormAlignment(Qt.Alignment.AlignCenter) formContainer.setLayout(self.formLayout) formContainer.setStyleSheet( "background-color: white; border-radius: 7px;") layout.addWidget(formContainer) def onSubjectSelected(self): if self.classifyExercises is not None \ and "" != self.subjectEdit.text() \ and "" != self.ageEdit.text(): self.subject = self.subjectEdit.text() self.classifyExercises.subject = self.subject self.classifyExercises.age = self.ageEdit.text() self.infoLabel.setText("Subject name set to " + self.subject + ", age " + self.classifyExercises.age) self.close()
class NodeWidget(QWidget): def __init__(self, ID=0): super(NodeWidget, self).__init__() laytout = QHBoxLayout() self.input_id = QLineEdit(str(ID)) self.input_id.setFixedWidth(30) self.input_text = QLineEdit("") self.input_text.setFixedHeight(20) self.input_text.setFixedWidth(400) self.input_type = QComboBox() self.input_type.addItem('开始/结束') self.input_type.addItem('流程') self.input_type.addItem('判定') self.input_type.addItem('None') self.input_type.setFixedWidth(80) self.input_x = QLineEdit("0") self.input_x.setFixedWidth(30) self.input_y = QLineEdit("0") self.input_y.setFixedWidth(30) self.input_link1 = QLineEdit("") self.input_link1.setFixedWidth(30) self.input_link2 = QLineEdit("") self.input_link2.setFixedWidth(30) laytout.addWidget(self.input_id) laytout.addWidget(self.input_text) laytout.addWidget(self.input_type) laytout.addWidget(self.input_x) laytout.addWidget(self.input_y) laytout.addWidget(self.input_link1) laytout.addWidget(self.input_link2) laytout.addStretch() laytout.setContentsMargins(0, 0, 0, 0) self.setLayout(laytout) self.data = [] def get_node_info(self): print("读取数据") self.data.append(int(self.input_id.text())) self.data.append(self.input_text.text()) if '开始/结束' == self.input_type.currentText(): self.data.append(2) print("开始/结束") elif '流程' == self.input_type.currentText(): self.data.append(0) print("流程") elif '判定' == self.input_type.currentText(): self.data.append(1) print("判定") else: print("None") self.data.append(3) print("===1===") self.data.append(int(self.input_x.text())) self.data.append(int(self.input_y.text())) if self.input_link1.text(): self.data.append(int(self.input_link1.text())) if self.input_link2.text(): self.data.append(int(self.input_link2.text())) print(self.data) return self.data
class PyCalcUi(QMainWindow): """PyCalc's View (GUI).""" def __init__(self): """View initializer.""" super().__init__() # Set some main window's properties self.setWindowTitle("PyCalc") self.setFixedSize(235, 235) # Set the central widget and the general layout self.generalLayout = QVBoxLayout() self._centralWidget = QWidget(self) self.setCentralWidget(self._centralWidget) self._centralWidget.setLayout(self.generalLayout) # Create the display and the buttons self._createDisplay() self._createButtons() def _createDisplay(self): """Create the display.""" # Create the display widget self.display = QLineEdit() # Set some display's properties self.display.setFixedHeight(35) self.display.setAlignment(Qt.AlignmentFlag.AlignRight) self.display.setReadOnly(True) # Add the display to the general layout self.generalLayout.addWidget(self.display) def _createButtons(self): """Create the buttons.""" self.buttons = {} buttonsLayout = QGridLayout() # Button text | position on the QGridLayout buttons = { "7": (0, 0), "8": (0, 1), "9": (0, 2), "/": (0, 3), "C": (0, 4), "4": (1, 0), "5": (1, 1), "6": (1, 2), "*": (1, 3), "(": (1, 4), "1": (2, 0), "2": (2, 1), "3": (2, 2), "-": (2, 3), ")": (2, 4), "0": (3, 0), "00": (3, 1), ".": (3, 2), "+": (3, 3), "=": (3, 4), } # Create the buttons and add them to the grid layout for btnText, pos in buttons.items(): self.buttons[btnText] = QPushButton(btnText) self.buttons[btnText].setFixedSize(40, 40) buttonsLayout.addWidget(self.buttons[btnText], pos[0], pos[1]) # Add buttonsLayout to the general layout self.generalLayout.addLayout(buttonsLayout) def setDisplayText(self, text): """Set display's text.""" self.display.setText(text) self.display.setFocus() def displayText(self): """Get display's text.""" return self.display.text() def clearDisplay(self): """Clear the display.""" self.setDisplayText("")