Как установитьText для QPlainTextEdit?

Документация Qt5 не упоминает, что QPlainTextEdit имеет setText(QString) как QTextEdit. Но я не думаю, что это невозможно. Единственный способ, которым я нашел, - использовать QTextDocument, который может иметь setPlainText(const QString& text). Поэтому я должен это сделать:

plain_text_edit->setDocument(text_document);

Проблема text_document должна быть указателем. Не как QTextEdit setText, который может принимать локальную переменную в качестве ее параметра. Итак, есть ли способ сделать setText как QPlainTextEdit?

Ответ 1

Это очень просто, просто получите текущий документ и установите его текст:

plain_text_edit->document()->setPlainText(text);

Альтернативный способ, просто вызвать этот метод:

plain_text_edit->setPlainText(text);

Вы также можете использовать текстовый курсор редактора во многих отношениях, чтобы добиться этого, проще всего выбрав весь существующий текст (при условии, что редактор не пуст), затем выполнив plain_text_edit->TextCursor().insertText(text); (который заменяет текущий выделенный текст обычной семантикой паттерна), но для простого случая замены всего текста, который слишком сложный.