Что касается вашей проблемы, я вижу, что вы могли бы ее исправить, но я не уверен, что она лучшая. Вот оно:
Вы можете позвонить textCursor()
на свой QGraphicsTextItem
, чтобы получить QTextCursor
своего QGraphicsTextItem
. С помощью этого курсора вы можете получить его позицию, вызвав position()
. Затем сохраните это значение, обновите текст и затем установите положение курсора, создав новый QTextCursor
, установив его положение с помощью setPosition(int pos, MoveMode m = MoveAnchor)
.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ добавить пример:
// graphicsTextItem is of type QGraphicsTextItem*
QTextCursor cursor = graphicsTextItem->textCursor;
int startPosition = cursor.position();
// Do all you need to update your text.
QTextCursor afterCursor;
afterCursor.setPosition(startPosition);
graphicsTextItem->setTextCursor(afterCursor);
Я не проверял это, я написал так, как я думал, что это сработает.