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.
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èreQTextEdit
etQTextDocument
. 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éeQPlainTextDocumentLayout
sur le document texte (voirQTextDocument::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 (voirsetMaximumBlockCount()
).
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.