def on_edit_annotation_item_requested(self, item: QGraphicsItem): # Edit text item if isinstance(item, TextItem): def edit_text_item(result): if result == QDialog.Accepted: old_text = item.text() old_font = item.font() text, font_size = self._dialog.getValues() font = QFont() font.setPointSize(font_size) item.setText(text) item.setFont(font) self._undo_stack.push( EditTextCommand(item, old_text, old_font.pointSize(), self.scene())) self._dialog = TextItemInputDialog(self) self._dialog.setValues(item.text(), item.font().pointSize()) self._dialog.finished.connect(edit_text_item) self._dialog.open()