c++ qt qt5 qtextedit qplaintextedit

c++ - qtextedit pyqt5



QTextEdit vs QPlainTextEdit (1)

¿Cuál es la diferencia entre QTextEdit y QPlainTextEdit , por qué usar uno sobre el otro?

Estoy codificando un editor de texto como un ejercicio para aprender Qt5, y ahora me pregunto si usar QTextEdit o QPlainTextEdit . Hasta ahora, solo he descubierto que puedes mostrar imágenes en QTextEdit , pero aparte de eso, se ven algo idénticas a mí. Mi editor de texto debe admitir algunos resaltados de sintaxis básicos (probablemente usando la señal textChanged() ), pero eso es más o menos lo que se textChanged() .

Google busca "QTextEdit vs QPlainTextEdit" y "QTextEdit en comparación con QPlainTextEdit" no me dio ningún resultado decente que comparara las dos clases.


De la documentación de Qt :

QPlainTextEdit es un visor / editor avanzado que admite texto sin formato. Está optimizado para manejar documentos grandes y responder rápidamente a la entrada del usuario.

QPlainText utiliza la misma tecnología y conceptos que QTextEdit , pero está optimizado para el manejo de texto sin formato.

QPlainTextEdit funciona en párrafos y caracteres. Un párrafo es una cadena formateada que se envuelve por palabra para que se ajuste al ancho del widget. Por defecto cuando lee texto sin formato, una nueva línea significa un párrafo. Un documento consta de cero o más párrafos. Los párrafos están separados por saltos de línea dura. Cada personaje dentro de un párrafo tiene sus propios atributos, por ejemplo, fuente y color.

Y luego:

Diferencias con QTextEdit

QPlainTextEdit es una clase delgada, implementada mediante el uso de la mayor parte de la tecnología que está detrás de QTextEdit y QTextDocument . Sus beneficios de rendimiento sobre QTextEdit derivan principalmente del uso de un diseño de texto diferente y simplificado llamado QPlainTextDocumentLayout en el documento de texto (ver QTextDocument::setDocumentLayout() ). El diseño de documento de texto sin formato no admite tablas ni marcos incrustados, y reemplaza un cálculo de altura exacto de píxeles con un enfoque de desplazamiento línea por línea, respectivamente, párrafo por párrafo. Esto hace posible manejar documentos significativamente más grandes y aún cambiar el tamaño del editor con el ajuste de línea habilitado en tiempo real. También lo convierte en un visor de registro rápido (ver setMaximumBlockCount() ).

Entonces la diferencia es que QPlainTextEdit está optimizado para manejar texto sin formato, y se puede usar incluso con archivos de texto sin formato muy grandes. También la forma en que se formatea el texto es más simple.

Si planea admitir solo textos sin formato, entonces QPlainTextEdit es la elección correcta.