2015-05-23 123 views
10

Qt5的文檔沒有提及QPlainTextEditsetText(QString)就像QTextEdit那樣。但是,我不認爲這是不可能的。我發現的唯一方法是使用QTextDocument,它可以有setPlainText(const QString& text)。所以我必須這樣做:如何爲QPlainTextEdit設置文本?

plain_text_edit->setDocument(text_document); 

問題是text_document應該是一個指針。不像QTextEditsetText它可以採取一個局部變量作爲它的參數。那麼,有沒有做setText喜歡到QPlainTextEdit

回答

16

這很簡單,只需get the current documentset its text

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

替代方式,第一clear the editor,然後append new text

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

你也可以在許多方面使用text cursor of the editor實現這一點,最簡單由selecting整個現有的文本(假設編輯器不是空的),然後做plain_text_edit->TextCursor().insertText(text);(用通常的粘貼語義替換當前選定的文本),但對於這種簡單的情況,可能會過於複雜。