Сохранить позицию курсора в QTextEdit

У меня есть элемент управления QTextEdit. У него максимальный лимит (максимальное количество символов, которое он может содержать). Чтобы реализовать это, я подключил слот к сигналу textChanged (), который удаляет лишний символ, когда общее количество символов превышает допустимый максимум.

С этим у меня есть некоторые проблемы, связанные с положением курсора. Может кто-нибудь сказать мне, как сохранить положение курсора в QTextEdit?

1

Решение

На вашем слоте:

Если число символов превышает максимальное:

Спросите QTextEdit для курсора:

QTextCursor QTextEdit :: textCursor () const

Установите возвращаемое значение в качестве курсора textEdit (потому что он возвращает копию). Из документа:

Возвращает копию QTextCursor, которая представляет текущий видимый курсор. Обратите внимание, что> изменения в возвращенном курсоре не влияют на курсор QTextEdit; используйте setTextCursor (), чтобы> обновить видимый курсор.

void QTextEdit :: setTextCursor (const QTextCursor & курсор)

Попросить курсор удалить последний символ

void QTextCursor :: deletePreviousChar ()

(Изменить) как код:

QTextCursor  cursor = ui->textEdit->textCursor();
ui->textEdit->setTextCursor( cursor );
cursor.deletePreviousChar();
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]