QTextEdit против QPlainTextEdit

В чем разница между QTextEdit а также QPlainTextEditзачем использовать один над другим?

Я пишу текстовый редактор в качестве упражнения для изучения Qt5, и теперь мне интересно, стоит ли использовать QTextEdit или же QPlainTextEdit, Пока я только узнал, что вы можете отображать изображения в QTextEditНо кроме этого они выглядят несколько идентичными для меня. Мой текстовый редактор должен поддерживать некоторую базовую подсветку синтаксиса (возможно, используя textChanged() сигнал), но это в значительной степени, насколько требования идут.

Поиски в Google "QTextEdit vs QPlainTextEdit" и "QTextEdit по сравнению с QPlainTextEdit" не дали мне достойных результатов, которые бы сравнивали эти два класса.

1 ответ

Решение

Из документации Qt:

QPlainTextEdit это расширенный просмотрщик / редактор, поддерживающий простой текст. Он оптимизирован для обработки больших документов и быстрого реагирования на ввод пользователя.

QPlainText использует те же технологии и концепции, что и QTextEdit, но оптимизирован для обработки простого текста.

QPlainTextEdit работает над абзацами и символами. Абзац - это отформатированная строка, которая переносится по словам, чтобы соответствовать ширине виджета. По умолчанию при чтении простого текста одна новая строка обозначает абзац. Документ состоит из нуля или более абзацев. Абзацы разделены жесткими переносами строк. Каждый символ в абзаце имеет свои собственные атрибуты, например, шрифт и цвет.

И позже:

Отличия от QTextEdit

QPlainTextEdit тонкий класс, реализованный с использованием большинства технологий, которые стоят за QTextEdit а также QTextDocument, Его производительность выше QTextEdit проистекает в основном из использования другого и упрощенного текстового макета под названием QPlainTextDocumentLayout на текстовом документе (см. QTextDocument::setDocumentLayout()). Макет документа в виде простого текста не поддерживает таблицы и встроенные фреймы и заменяет вычисление высоты с точностью до пикселя построчным или абзацевым способом прокрутки. Это позволяет обрабатывать значительно большие документы и при этом изменять размер редактора с включенной переносом строк в реальном времени. Это также делает для быстрого просмотра журнала (см. setMaximumBlockCount()).

Так что разница в том, что QPlainTextEdit оптимизирован для обработки простого текста и может использоваться даже с очень большими текстовыми файлами. Кроме того, способ форматирования текста проще.

Если вы планируете поддерживать только простые тексты, то QPlainTextEdit это правильный выбор.

Другие вопросы по тегам