def createEditor(self, parent: QWidget, option: QStyleOptionViewItem, index: QModelIndex) -> QWidget: editor = QDoubleSpinBox(parent) editor.setFrame(False) editor.setRange(self.__min, self.__max) editor.setDecimals(self.__decimals) return editor
def _add_record_view(self, record: PatientBoneAgeRecord): row = self.rowCount() self.insertRow(row) self._records_rows[record] = row name = '' if record.image is None else record.image.path.stem name_item = QTableWidgetItem(name) name_item.setTextAlignment(Qt.AlignCenter) # Add the |record| reference to the |name_item| name_item.setData(TableItemDataRole.RECORD_REF, record) self.setItem(row, self.column_number(TableNameColumn), name_item) gender_widget = GenderWidget(embedded=True) gender_widget.man = record.male gender_widget.gender_changed.connect( partial(self._on_gender_changed, record)) record.male_changed.connect( partial(self._on_record_male_changed, gender_widget)) self.setCellWidget(row, self.column_number(TableGenderColumn), gender_widget) birthdate_edit_widget = DateEditWidget(record.birthdate, embedded=True) birthdate_edit_widget.dateChanged.connect( partial(self._on_birthdate_changed, record)) self.setCellWidget(row, self.column_number(TableBirthdateColumn), birthdate_edit_widget) image_date_edit_widget = DateEditWidget(record.image_date, embedded=True) image_date_edit_widget.dateChanged.connect( partial(self._on_image_date_changed, record)) self.setCellWidget(row, self.column_number(TableImageDateColumn), image_date_edit_widget) age_in_image_item = QTableWidgetItem() age_in_image_item.setFlags(age_in_image_item.flags() & ~Qt.ItemIsEditable) age_in_image_item.setTextAlignment(Qt.AlignCenter) record.age_in_image_changed.connect( partial(self._set_age_to_table_item, age_in_image_item)) self.setItem(row, self.column_number(TableAgeInImageColumn), age_in_image_item) bone_age_item = QTableWidgetItem() bone_age_item.setFlags(bone_age_item.flags() & ~Qt.ItemIsEditable) record.bone_age_changed.connect( partial(self._set_age_to_table_item, bone_age_item)) record.skeletal_development_rate_changed.connect( partial(self._on_skeletal_development_rate_changed, record)) self.setItem(row, self.column_number(TableDenseNetBoneAgeColumn), bone_age_item) self._update_bone_age_table_item_foreground(record) height_spin_box = QDoubleSpinBox() height_spin_box.setAlignment(Qt.AlignCenter) height_spin_box.setFrame(False) height_spin_box.setDecimals(1) height_spin_box.setMaximum(300) self._set_height_to_table_item_widget(height_spin_box, record.height) record.height_changed.connect( partial(self._set_height_to_table_item_widget, height_spin_box)) height_spin_box.valueChanged.connect( partial(self._on_height_table_item_widget_value_changed, record)) self.setCellWidget(row, self.column_number(TableHeightColumn), height_spin_box) max_height_item = QTableWidgetItem() max_height_item.setFlags(max_height_item.flags() & ~Qt.ItemIsEditable) max_height_item.setTextAlignment(Qt.AlignCenter) self._set_max_height_to_table_item(max_height_item, record.max_height) record.max_height_changed.connect( partial(self._set_max_height_to_table_item, max_height_item)) self.setItem(row, self.column_number(TableMaxHeightColumn), max_height_item) self._update_age_column_contents_for_row(row)