web-dev-qa-db-fra.com

Comment définir Text pour QPlainTextEdit?

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 QTextEditsetText qui peut prendre une variable locale comme paramètre. Alors, est-il possible de faire setText comme QPlainTextEdit?

13
Mas Bagol

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é.

24
hyde