web-dev-qa-db-fra.com

QTextEdit vs QPlainTextEdit

Quelle est la différence entre QTextEdit et QPlainTextEdit, pourquoi utiliser l'un sur l'autre?

Je code un éditeur de texte comme un exercice pour apprendre Qt5, et maintenant je me demande s'il faut utiliser QTextEdit ou QPlainTextEdit. Jusqu'à présent, j'ai seulement découvert que vous pouvez afficher des images dans QTextEdit, mais à part cela, elles me semblent quelque peu identiques. Mon éditeur de texte devrait prendre en charge une coloration syntaxique de base (probablement en utilisant le signal textChanged()), mais c'est à peu près autant que les exigences vont.

Google recherche "QTextEdit vs QPlainTextEdit" et "QTextEdit par rapport à QPlainTextEdit" ne m'a pas donné de résultats décents qui compareraient les deux classes.

39
Markus Meskanen

De documentation de Qt :

QPlainTextEdit est un visualiseur/éditeur avancé prenant en charge le texte brut. Il est optimisé pour gérer des documents volumineux et pour répondre rapidement aux entrées des utilisateurs.

QPlainText utilise à peu près la même technologie et les mêmes concepts que QTextEdit, mais est optimisé pour la gestion de texte brut.

QPlainTextEdit fonctionne sur les paragraphes et les caractères. Un paragraphe est une chaîne formatée qui est enveloppée dans Word pour s'adapter à la largeur du widget. Par défaut, lors de la lecture de texte brut, une nouvelle ligne signifie un paragraphe. Un document se compose de zéro ou plusieurs paragraphes. Les paragraphes sont séparés par des sauts de ligne durs. Chaque caractère d'un paragraphe a ses propres attributs, par exemple, la police et la couleur.

Et plus tard:

Différences avec QTextEdit

QPlainTextEdit est une classe mince, implémentée en utilisant la plupart des technologies derrière QTextEdit et QTextDocument. Ses avantages en termes de performances par rapport à QTextEdit proviennent principalement de l'utilisation d'une disposition de texte différente et simplifiée appelée QPlainTextDocumentLayout sur le document texte (voir QTextDocument::setDocumentLayout()). La mise en page du document en texte brut ne prend pas en charge les tableaux ni les cadres incorporés et remplace un calcul de la hauteur au pixel près par une approche de défilement ligne par ligne ou paragraphe par paragraphe. Cela permet de gérer des documents beaucoup plus volumineux et de redimensionner l'éditeur avec un retour à la ligne activé en temps réel. Il permet également une visionneuse de journaux rapide (voir setMaximumBlockCount()).

La différence est donc que QPlainTextEdit est optimisé pour la gestion du texte brut et peut être utilisé même avec de très gros fichiers de texte brut. La façon dont le texte est formaté est également plus simple.

Si vous prévoyez de ne prendre en charge que les textes en clair, alors QPlainTextEdit est le bon choix.

37
Bakuriu