2015-05-23 12 views
10

Qt5-Dokumentation erwähnt nicht, dass QPlainTextEditsetText(QString) wie QTextEdit hat. Aber ich glaube nicht, dass es unmöglich ist. Die einzige Möglichkeit, die ich gefunden habe, ist QTextDocument, die setPlainText(const QString& text) haben kann. So habe ich dies zu tun:Wie setze ich Text für QPlainTextEdit?

plain_text_edit->setDocument(text_document); 

Das Problem ist text_document ein Zeiger sein sollte. Nicht wie QTextEditsetText, die eine lokale Variable als Parameter nehmen kann. Also, gibt es auf jeden Fall zu tun setText gerne QPlainTextEdit?

Antwort

16

Es ist sehr einfach, nur get the current document und set its text:

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

Alternative Art und Weise, erste clear the editor, dann append new text:

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

Sie auch text cursor of the editor in vielerlei Hinsicht nutzen könnten um dies zu erreichen, am einfachsten y von selecting gesamten vorhandenen Text (vorausgesetzt, der Editor ist nicht leer), dann tun plain_text_edit->TextCursor().insertText(text); (die derzeit ausgewählten Text mit üblichen Paste Semantik ersetzt), aber für diesen einfachen Fall wäre das vielleicht zu kompliziert.

Verwandte Themen