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

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

plain_text_edit->setDocument(text_document);

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

1 ответов


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

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

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

plain_text_edit->clear(); // unless you know the editor is empty
plain_text_edit->appendPlainText(text);

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