La documentation de Qt5 ne mentionne pas que QPlainTextEdit
a setText(QString)
comme QTextEdit
. Mais je ne pense pas que ce soit impossible. La seule façon que j'ai trouvée est d'utiliser QTextDocument
qui peut avoir setPlainText(const QString& text)
. Je dois donc faire ceci:
plain_text_edit->setDocument(text_document);
Le problème est text_document
devrait être un pointeur. Pas comme QTextEdit
setText
qui peut prendre une variable locale comme paramètre. Alors, est-il possible de faire setText
comme QPlainTextEdit
?
C'est très simple, juste récupérer le document actuel et définir son texte :
plain_text_edit->document()->setPlainText(text);
Autre moyen, appelez simplement cette méthode :
plain_text_edit->setPlainText(text);
Vous pouvez également utiliser curseur de texte de l'éditeur de plusieurs façons pour y parvenir, le plus simplement en sélectionnant tout le texte existant (en supposant que l'éditeur n'est pas vide), puis en faisant - plain_text_edit->TextCursor().insertText(text);
(qui remplace le texte actuellement sélectionné par la sémantique de collage habituelle), mais pour le cas simple de remplacer tout le texte, c'est trop compliqué.