2015-05-23 12 views
10

La documentazione di Qt5 non menziona che QPlainTextEdit ha setText(QString) come QTextEdit. Ma, non penso sia impossibile. L'unico modo che ho trovato è quello di utilizzare QTextDocument che può avere setPlainText(const QString& text). Quindi devo fare questo:Come impostare il testo per QPlainTextEdit?

plain_text_edit->setDocument(text_document); 

Il problema è text_document dovrebbe essere un puntatore. Non come's setText che può assumere una variabile locale come parametro. Quindi, c'è comunque da fare setText come a QPlainTextEdit?

risposta

16

E 'molto semplice, basta get the current document e set its text:

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

modo alternativo, prima clear the editor, poi append new text:

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

Si potrebbe anche usare text cursor of the editor in molti modi per raggiungere questo, il più semplice y per selecting intero testo esistente (supponendo che l'editor non sia vuoto), quindi facendo plain_text_edit->TextCursor().insertText(text); (che sostituisce il testo attualmente selezionato con la solita semantica di pasta), ma per questo caso semplice che potrebbe essere sovradimensionato.

Problemi correlati