Класс QTextEdit
Класс QTextEdit предоставляет виджет, используемый для редактирования и отображения простого и форматированного текста. Подробнее...
| Заголовок: | #include <QTextEdit> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractScrollArea |
| Наследует: |
Открытые типы
| Структура | ExtraSelection |
| Флаги | АвтоматическоеФорматирование |
| Перечисление | ФлагАвтоматическогоФорматирования { АвтоНет, АвтоМаркированныйСписок, АвтоВсе } |
| Перечисление | РежимПереносаСтрок { БезПереноса, ШиринаВиджет, ФиксированнаяШиринаВПикселях, ФиксированнаяШиринаВСтолбцах } |
Свойства
|
|
Открытые функции
| QTextEdit(const QString &text, QWidget *parent = nullptr) | |
| QTextEdit(QWidget *parent = nullptr) | |
| virtual | ~QTextEdit() |
| bool | приниматьRichText() const |
| Qt::Alignment | выравнивание() const |
| QString | якорьВ(const QPoint &pos) const |
| QTextEdit::AutoFormatting | автоформатирование() const |
| bool | можноВставить() const |
| QMenu * | создатьСтандартноеКонтекстноеМеню() |
| QMenu * | создатьСтандартноеКонтекстноеМеню(const QPoint &position) |
| QTextCharFormat | текущийФорматСимвола() const |
| QFont | текущийШрифт() const |
| QTextCursor | курсорДляПозиции(const QPoint &pos) const |
| QRect | прямоугольникКурсора(const QTextCursor &cursor) const |
| QRect | прямоугольникКурсора() const |
| int | ширинаКурсора() const |
| QTextDocument * | документ() const |
| QString | заголовокДокумента() const |
| void | обеспечитьВидимостьКурсора() |
| QList<QTextEdit::ExtraSelection> | дополнительныеВыделения() const |
| bool | найти(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags()) |
| bool | найти(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags()) |
| QString | шрифт() const |
| bool | курсив() const |
| qreal | размерШрифта() const |
| bool | подчеркнутый() const |
| int | жирностьШрифта() const |
| bool | толькоДляЧтения() const |
| bool | включеноОтменаВозврат() const |
| int | ширинаИлиСтолбецПереносаСтрок() const |
| QTextEdit::LineWrapMode | режимПереносаСтрок() const |
| virtual QVariant | загрузитьРесурс(int type, const QUrl &name) |
| void | слитьТекущийФорматСимвола(const QTextCharFormat &modifier) |
| void | переместитьКурсор(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor) |
| bool | режимПерепечатки() const |
| QString | текстЗаполнителя() const |
| void | распечатать(QPagedPaintDevice *printer) const |
| void | установитьПриниматьRichText(bool accept) |
| void | установитьАвтоформатирование(QTextEdit::AutoFormatting features) |
| void | установитьТекущийФорматСимвола(const QTextCharFormat &format) |
| void | установитьширинуКурсора(int width) |
| void | установитьДокумент(QTextDocument *document) |
| void | установитьЗаголовокДокумента(const QString &title) |
| void | установитьДополнительныеВыделения(const QList<QTextEdit::ExtraSelection> &selections) |
| void | установитьШиринаИлиСтолбецПереносаСтрок(int w) |
| void | установитьРежимПереносаСтрок(QTextEdit::LineWrapMode mode) |
| void | установитьРежимПерепечатки(bool overwrite) |
| void | установитьТекстЗаполнителя(const QString &placeholderText) |
| void | установитьТолькоДляЧтения(bool ro) |
| void | установитьПереключениеВводаНаФокус(bool b) |
| void | установитьРасстояниеДоОтступа(qreal distance) |
| void | установитьКурсор(const QTextCursor &cursor) |
| void | установитьФлагиВзаимодействияСТекстом(Qt::TextInteractionFlags flags) |
| void | установитьВключитьОтменуВозврат(bool enable) |
| void | установитьРежимОбрезанияПоСловам(QTextOption::WrapMode policy) |
| bool | переключениеВводаНаФокус() const |
| qreal | расстояниеДоОтступа() const |
| QColor | цветФонаТекста() const |
| QColor | цветТекста() const |
| QTextCursor | textCursor() const |
| Qt::TextInteractionFlags | textInteractionFlags() const |
| QString | toHtml() const |
| QString | toMarkdown(QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub) const |
| QString | toPlainText() const |
| QTextOption::WrapMode | wordWrapMode() const |
Реализованные общедоступные функции
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery property) const override |
Общедоступные слоты
| void | append(const QString &text) |
| void | clear() |
| void | copy() |
| void | cut() |
| void | insertHtml(const QString &text) |
| void | insertPlainText(const QString &text) |
| void | paste() |
| void | redo() |
| void | scrollToAnchor(const QString &name) |
| void | selectAll() |
| void | setAlignment(Qt::Alignment a) |
| void | setCurrentFont(const QFont &f) |
| void | setFontFamily(const QString &fontFamily) |
| void | setFontItalic(bool italic) |
| void | setFontPointSize(qreal s) |
| void | setFontUnderline(bool underline) |
| void | setFontWeight(int weight) |
| void | setHtml(const QString &text) |
| void | setMarkdown(const QString &markdown) |
| void | setPlainText(const QString &text) |
| void | setText(const QString &text) |
| void | setTextBackgroundColor(const QColor &c) |
| void | setTextColor(const QColor &c) |
| void | undo() |
| void | zoomIn(int range = 1) |
| void | zoomOut(int range = 1) |
Сигналы
| void | copyAvailable(bool yes) |
| void | currentCharFormatChanged(const QTextCharFormat &f) |
| void | cursorPositionChanged() |
| void | redoAvailable(bool available) |
| void | selectionChanged() |
| void | textChanged() |
| void | undoAvailable(bool available) |
Защищенные функции
| virtual bool | canInsertFromMimeData(const QMimeData *source) const |
| virtual QMimeData * | createMimeDataFromSelection() const |
| virtual void | insertFromMimeData(const QMimeData *source) |
Реализованные защищенные функции
| virtual void | changeEvent(QEvent *e) override |
| virtual void | contextMenuEvent(QContextMenuEvent *event) override |
| virtual void | dragEnterEvent(QDragEnterEvent *e) override |
| virtual void | dragLeaveEvent(QDragLeaveEvent *e) override |
| virtual void | dragMoveEvent(QDragMoveEvent *e) override |
| virtual void | dropEvent(QDropEvent *e) override |
| virtual void | focusInEvent(QFocusEvent *e) override |
| virtual bool | focusNextPrevChild(bool next) override |
| virtual void | focusOutEvent(QFocusEvent *e) override |
| virtual void | inputMethodEvent(QInputMethodEvent *e) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | keyReleaseEvent(QKeyEvent *e) override |
| virtual void | mouseDoubleClickEvent(QMouseEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | scrollContentsBy(int dx, int dy) override |
| virtual void | showEvent(QShowEvent *) override |
| virtual void | wheelEvent(QWheelEvent *e) override |
Подробное описание
Введение и концепции
QTextEdit — это расширенный WYSIWYG-просмотрщик/редактор, поддерживающий форматирование форматированного текста с использованием тегов в стиле HTML или формате Markdown. Он оптимизирован для обработки больших документов и быстрого реагирования на ввод пользователя.
QTextEdit работает с абзацами и символами. Абзац — это форматированная строка, которая переносится на следующую строку, чтобы уместиться в ширине виджета. По умолчанию при чтении простого текста одна новая строка обозначает абзац. Документ состоит из нуля или более абзацев. Слова в абзаце выравниваются в соответствии с выравниванием абзаца. Абзацы разделены жёсткими переносами строк. Каждый символ в абзаце имеет свои атрибуты, например, шрифт и цвет.
QTextEdit может отображать изображения, списки и таблицы. Если текст слишком большой, чтобы отобразиться в области просмотра текстового поля, появятся полосы прокрутки. Текстовое поле может загружать файлы как простого текста, так и форматированного текста. Форматированный текст может быть описан с помощью подмножества разметки HTML 4; см. страницу Поддерживаемое подмножество HTML для получения дополнительной информации.
Если вам нужно просто отобразить небольшой фрагмент форматированного текста, используйте QLabel.
Поддержка форматированного текста в Qt разработана для обеспечения быстрого, портативного и эффективного способа добавления разумных средств онлайн-справочной информации в приложения и для создания основы для редакторов форматированного текста. Если поддержка HTML недостаточно для ваших нужд, вы можете рассмотреть использование Qt WebKit, которое предоставляет полнофункциональный виджет веб-браузера.
Форма курсора мыши в QTextEdit по умолчанию — Qt::IBeamCursor. Его можно изменить через свойство курсора viewport().
Использование QTextEdit в качестве виджета отображения
QTextEdit может отображать большое подмножество HTML, включая таблицы и изображения.
Текст можно установить или заменить с помощью setHtml(), который удаляет любой существующий текст и заменяет его текстом, переданным в вызове setHtml(). Если вы вызываете setHtml() с устаревшей разметкой HTML, а затем вызываете toHtml(), возвращаемый текст может иметь другую разметку, но будет отображаться так же. Весь текст можно удалить с помощью clear().
Текст также можно установить или заменить с помощью setMarkdown(), и те же замечания применяются: если вы затем вызываете toMarkdown(), возвращаемый текст может отличаться, но смысл сохраняется настолько, насколько это возможно. Markdown с некоторым встроенным HTML может быть проанализирован, с теми же ограничениями, что и у setHtml(); но toMarkdown() записывает только «чистый» Markdown без какого-либо встроенного HTML.
Сам текст можно вставлять с помощью класса QTextCursor или с помощью удобных функций insertHtml(), insertPlainText(), append() или paste(). QTextCursor также может вставлять сложные объекты, такие как таблицы или списки, в документ, а также обрабатывает создание выделений и применение изменений к выделенному тексту.
По умолчанию текстовое поле переносит слова по пробелам, чтобы они поместились в текстовом поле. Функция setLineWrapMode() используется для указания вида переноса строки, или NoWrap, если вы не хотите никакого переноса.
Вызов setLineWrapMode() для установки фиксированной ширины в пикселях FixedPixelWidth или ширины в символах (например, 80 столбцов) FixedColumnWidth с указанием пикселей или столбцов с помощью setLineWrapColumnOrWidth(). Если вы используете перенос слов до ширины виджета WidgetWidth, вы можете указать, нужно ли разделять на пробелах или где угодно с помощью setWordWrapMode().
Функция find() может использоваться для поиска и выделения заданной строки в тексте.
Если вы хотите ограничить общее количество абзацев в QTextEdit, например, это часто полезно в просмотрщике журналов, то вы можете использовать свойство maximumBlockCount QTextDocument для этого.
Связки клавиш только для чтения
Когда QTextEdit используется только для чтения, связки клавиш ограничиваются навигацией, и текст можно выбирать только с помощью мыши:
| Нажатия клавиш | Действие |
|---|---|
| Вверх | Перемещает на одну строку вверх. |
| Вниз | Перемещает на одну строку вниз. |
| Влево | Перемещает на один символ влево. |
| Вправо | Перемещает на один символ вправо. |
| PageUp | Перемещает на одну страницу вверх. |
| PageDown | Перемещает на одну страницу вниз. |
| Home | Перемещает в начало текста. |
| End | Перемещает в конец текста. |
| Alt+Колесо | Прокручивает страницу по горизонтали (колесо — колесо мыши). |
| Ctrl+Колесо | Масштабирует текст. |
| Ctrl+A | Выделяет весь текст. |
Текстовое поле может предоставить некоторую метаинформацию. Например, функция documentTitle() вернёт текст из тегов HTML <title>.
Примечание: Масштабирование HTML-документов работает только в том случае, если размер шрифта не задан фиксированным значением.
Использование QTextEdit в качестве редактора
Вся информация об использовании QTextEdit в качестве виджета отображения также применима и здесь.
Атрибуты текущего формата символов устанавливаются с помощью setFontItalic(), setFontWeight(), setFontUnderline(), setFontFamily(), setFontPointSize(), setTextColor() и setCurrentFont(). Выравнивание текущего абзаца устанавливается с помощью setAlignment().
END_OF_DOCUMENT_MARKERВыбор текста выполняется классом QTextCursor, который предоставляет функциональность для создания выделений, получения содержимого текста или удаления выделений. Вы можете получить объект, соответствующий отображаемому курсору пользователя, используя метод textCursor(). Если вы хотите установить выделение в QTextEdit, просто создайте его на объекте QTextCursor, а затем сделайте этот курсор видимым, используя setTextCursor(). Выделение можно скопировать в буфер обмена с помощью copy() или вырезать в буфер обмена с помощью cut(). Весь текст можно выделить, используя selectAll().
Когда курсор перемещается и атрибуты форматирования базового текста изменяются, сигнал currentCharFormatChanged() излучается, чтобы отразить новые атрибуты в новом положении курсора.
Сигнал textChanged() излучается всякий раз, когда текст изменяется (в результате setText() или через сам редактор).
QTextEdit содержит объект QTextDocument, который можно получить с помощью метода document(). Вы также можете установить свой собственный объект документа с помощью setDocument().
QTextDocument предоставляет функцию isModified(), которая вернёт true, если текст был изменён с момента загрузки или с последнего вызова setModified с false в качестве аргумента. Кроме того, он предоставляет методы для отмены и повтора.
Перетаскивание
QTextEdit также поддерживает пользовательское поведение перетаскивания. По умолчанию QTextEdit будет вставлять простой текст, HTML и форматированный текст, когда пользователь перетащит данные этих типов MIME на документ. Переопределите canInsertFromMimeData() и insertFromMimeData(), чтобы добавить поддержку дополнительных типов MIME.
Например, чтобы позволить пользователю перетаскивать изображение на QTextEdit, вы можете реализовать эти функции следующим образом:
bool TextEdit::canInsertFromMimeData( const QMimeData *source ) const
{
if (source->hasImage())
return true;
else
return QTextEdit::canInsertFromMimeData(source);
} Мы добавляем поддержку типов MIME изображений, возвращая true. Для всех других типов MIME мы используем реализацию по умолчанию.
void TextEdit::insertFromMimeData( const QMimeData *source )
{
if (source->hasImage())
{
QImage image = qvariant_cast<QImage>(source->imageData());
QTextCursor cursor = this->textCursor();
QTextDocument *document = this->document();
document->addResource(QTextDocument::ImageResource, QUrl("image"), image);
cursor.insertImage("image");
}
} Мы распаковываем изображение из QVariant, хранящейся в источнике MIME, и вставляем его в документ в качестве ресурса.
Настройки горячих клавиш редактирования
Список реализованных горячих клавиш для редактирования:
| Нажатия клавиш | Действие |
|---|---|
| Backspace | Удаляет символ слева от курсора. |
| Delete | Удаляет символ справа от курсора. |
| Ctrl+C | Копирует выделенный текст в буфер обмена. |
| Ctrl+Insert | Копирует выделенный текст в буфер обмена. |
| Ctrl+K | Удаляет до конца строки. |
| Ctrl+V | Вставляет текст из буфера обмена в редактор. |
| Shift+Insert | Вставляет текст из буфера обмена в редактор. |
| Ctrl+X | Удаляет выделенный текст и копирует его в буфер обмена. |
| Shift+Delete | Удаляет выделенный текст и копирует его в буфер обмена. |
| Ctrl+Z | Отменяет последнее действие. |
| Ctrl+Y | Повторяет последнее действие. |
| Влево | Перемещает курсор на один символ влево. |
| Ctrl+Влево | Перемещает курсор на одно слово влево. |
| Вправо | Перемещает курсор на один символ вправо. |
| Ctrl+Вправо | Перемещает курсор на одно слово вправо. |
| Вверх | Перемещает курсор на одну строку вверх. |
| Вниз | Перемещает курсор на одну строку вниз. |
| PageUp | Перемещает курсор на одну страницу вверх. |
| PageDown | Перемещает курсор на одну страницу вниз. |
| Home | Перемещает курсор в начало строки. |
| Ctrl+Home | Перемещает курсор в начало текста. |
| End | Перемещает курсор в конец строки. |
| Ctrl+End | Перемещает курсор в конец текста. |
| Alt+Колёсико | Прокручивает страницу по горизонтали (колёсико мыши). |
Чтобы выделить (отметить) текст, удерживайте нажатой клавишу Shift и одновременно нажмите одну из клавиш перемещения, например, Shift+Вправо выделит символ справа, а Shift+Ctrl+Вправо — слово справа и т. д.
См. также QTextDocument, QTextCursor, Qt Widgets — Пример приложения, Пример подсветки синтаксиса и Обработка форматированного текста.
Документация по типам членов
перечисление QTextEdit::AutoFormattingFlagфлаги QTextEdit::AutoFormatting
| Константа | Значение | Описание |
|---|---|---|
QTextEdit::AutoNone |
0 |
Не выполнять автоматическое форматирование. |
QTextEdit::AutoBulletList |
0x00000001 |
Автоматически создавать маркированные списки (например, когда пользователь вводит звёздочку ('*') в крайнем левом столбце или нажимает Enter в существующей строке списка. |
QTextEdit::AutoAll |
0xffffffff |
Применять все автоматические форматирования. В настоящее время поддерживаются только автоматические маркированные списки. |
Тип AutoFormatting является псевдонимом для QFlags<AutoFormattingFlag>. Он хранит логическое ИЛИ комбинацию значений AutoFormattingFlag.
перечисление QTextEdit::LineWrapMode
| Константа | Значение |
|---|---|
QTextEdit::NoWrap |
0 |
QTextEdit::WidgetWidth |
1 |
QTextEdit::FixedPixelWidth |
2 |
QTextEdit::FixedColumnWidth |
3 |
Документация свойств
acceptRichText : bool
Это свойство указывает, принимает ли текстовый редактор вставки форматированного текста пользователем.
Когда это свойство установлено в false, текстовый редактор будет принимать только обычный текст от пользователя. Например, через буфер обмена или перетаскивание.
По умолчанию это свойство равно true.
Функции доступа:
| bool | acceptRichText() const |
| void | setAcceptRichText(bool accept) |
autoFormatting : AutoFormatting
Это свойство содержит набор включённых функций автоматического форматирования.
Значение может быть любой комбинацией значений в перечислении AutoFormattingFlag. По умолчанию установлено значение AutoNone. Выберите AutoAll, чтобы включить все функции автоматического форматирования.
В настоящее время единственной функцией автоматического форматирования является AutoBulletList; в будущих версиях Qt могут быть добавлены дополнительные.
Функции доступа:
| QTextEdit::AutoFormatting | autoFormatting() const |
| void | setAutoFormatting(QTextEdit::AutoFormatting features) |
cursorWidth : int
Это свойство задаёт ширину курсора в пикселях. Значение по умолчанию равно 1.
Функции доступа:
| int | cursorWidth() const |
| void | setCursorWidth(int width) |
document : QTextDocument*
Это свойство содержит базовый документ текстового редактора.
Примечание: Редактор не принимает на себя владение документом, если только он не является родительским объектом документа. Родительский объект предоставленного документа остаётся владельцем объекта. Если ранее назначенный документ является дочерним объектом редактора, он будет удалён.
Функции доступа:
| QTextDocument * | document() const |
| void | setDocument(QTextDocument *document) |
documentTitle : QString
Это свойство содержит заголовок документа, извлечённый из текста.
По умолчанию, для нового пустого документа, это свойство содержит пустую строку.
Функции доступа:
| QString | documentTitle() const |
| void | setDocumentTitle(const QString &title) |
html : QString
Это свойство предоставляет HTML-интерфейс к тексту текстового редактора.
toHtml() возвращает текст текстового редактора в формате HTML.
setHtml() изменяет текст текстового редактора. Предыдущий текст удаляется, и история отмены/повтора очищается. Входящий текст интерпретируется как форматированный текст в формате HTML. currentCharFormat() также сбрасывается, если textCursor() не находится в начале документа.
Примечание: Ответственность за правильное декодирование текста возлагается на вызывающую сторону при создании QString, содержащей HTML, и передаче его в setHtml().
По умолчанию, для нового пустого документа, это свойство содержит текст, описывающий HTML 4.0 документ без текста тела.
Функции доступа:
| QString | toHtml() const |
| void | setHtml(const QString &text) |
Сигнал уведомления:
| void | textChanged() |
См. также Поддерживаемый подмножество HTML и plainText.
lineWrapColumnOrWidth : int
Это свойство хранит позицию (в пикселях или колонках в зависимости от режима перевода), где текст будет переноситься на новую строку.
Если режим перевода — FixedPixelWidth, значение — количество пикселей от левого края текстового редактора, на котором текст должен переноситься на новую строку. Если режим перевода — FixedColumnWidth, значение — номер колонки (в колонках символов) от левого края текстового редактора, на котором текст должен переноситься на новую строку.
По умолчанию это свойство содержит значение 0.
Функции доступа:
| int | lineWrapColumnOrWidth() const |
| void | setLineWrapColumnOrWidth(int w) |
См. также lineWrapMode.
lineWrapMode : LineWrapMode
Это свойство содержит режим переноса текста на новую строку.
Режим по умолчанию — WidgetWidth, который переносит слова к правому краю текстового редактора. Перенос происходит на пробелах, сохраняя целые слова. Если требуется перенос внутри слов, используйте setWordWrapMode(). Если вы установили режим перевода FixedPixelWidth или FixedColumnWidth, вы также должны вызвать setLineWrapColumnOrWidth() с желаемой шириной.
Функции доступа:
| QTextEdit::LineWrapMode | lineWrapMode() const |
| void | setLineWrapMode(QTextEdit::LineWrapMode mode) |
См. также lineWrapColumnOrWidth.
markdown : QString
Это свойство предоставляет Markdown-интерфейс к тексту текстового редактора.
toMarkdown() возвращает текст текстового редактора в формате "чистого" Markdown без встроенного HTML-форматирования. Некоторые функции, которые поддерживает QTextDocument (такие как использование определённых цветов и имён шрифтов), не могут быть выражены в "чистом" Markdown и будут опущены.
setMarkdown() изменяет текст текстового редактора. Предыдущий текст удаляется, а история отмены/повтора очищается. Входящий текст интерпретируется как форматированный текст в формате Markdown.
Обработка HTML, включённого в строку markdown, обрабатывается так же, как и в setHtml; однако, форматирование Markdown внутри HTML-блоков не поддерживается.
Некоторые функции анализатора можно включить или выключить с помощью аргумента features:
| Постоянная | Описание |
|---|---|
MarkdownNoHTML |
Любые HTML-теги в Markdown-тексте будут отброшены |
MarkdownDialectCommonMark |
Анализатор поддерживает только функции, стандартизированные CommonMark |
MarkdownDialectGitHub |
Анализатор поддерживает диалект GitHub |
По умолчанию MarkdownDialectGitHub.
Это свойство было добавлено в Qt 5.14.
Функции доступа:
| QString | toMarkdown(QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub) const |
| void | setMarkdown(const QString &markdown) |
Сигнал уведомления:
| void | textChanged() |
См. также plainText, html, QTextDocument::toMarkdown(), и QTextDocument::setMarkdown().
overwriteMode : bool
Это свойство указывает, будут ли вводимые пользователем символы перезаписывать существующий текст.
Как и во многих текстовых редакторах, виджет текстового редактора можно настроить на вставку или перезапись существующего текста новым вводимым пользователем текстом.
Если это свойство true, существующий текст перезаписывается символы за символами новым текстом; в противном случае, текст вставляется в позицию курсора, смещая существующий текст.
По умолчанию, это свойство равно false (новый текст не перезаписывает существующий).
Функции доступа:
| bool | overwriteMode() const |
| void | setOverwriteMode(bool overwrite) |
[since 5.2] placeholderText : QString
Это свойство содержит текст-заполнитель редактора.
Установка этого свойства отображает в редакторе серую надпись-заполнитель до тех пор, пока документ() пуст.
По умолчанию, это свойство содержит пустую строку.
Это свойство было введено в Qt 5.2.
Функции доступа:
| QString | placeholderText() const |
| void | setPlaceholderText(const QString &placeholderText) |
См. также document().
plainText : QString
Это свойство содержит содержимое текстового редактора в виде обычного текста.
Предыдущее содержимое удаляется, а история отмены/повторного выполнения сбрасывается при установке свойства. currentCharFormat() также сбрасывается, если textCursor() не находится в начале документа.
Если текстовый редактор имеет другой тип содержимого, он не будет заменён на обычный текст при вызове toPlainText(). Исключением является неразрывный пробел, nbsp;, который будет преобразован в обычный пробел.
По умолчанию, для редактора без содержимого это свойство содержит пустую строку.
Функции доступа:
| QString | toPlainText() const |
| void | setPlainText(const QString &text) |
См. также html.
readOnly : bool
Это свойство указывает, является ли текстовый редактор только для чтения.
В редакторе только для чтения пользователь может только перемещаться по тексту и выделять текст; изменение текста недоступно.
По умолчанию это свойство равно false.
Функции доступа:
| bool | isReadOnly() const |
| void | setReadOnly(bool ro) |
tabChangesFocus : bool
Это свойство указывает, изменяет ли Tab фокус или принимается как входной символ.
В некоторых случаях текстовые редакторы не должны допускать ввода табуляций или изменения отступов с помощью клавиши Tab, так как это нарушает цепочку фокуса. По умолчанию это false.
Функции доступа:
| bool | tabChangesFocus() const |
| void | setTabChangesFocus(bool b) |
[since 5.10] tabStopDistance : qreal
Это свойство содержит расстояние до отступа табуляции в пикселях.
По умолчанию, это свойство содержит значение 80 пикселей.
Это свойство было введено в Qt 5.10.
Функции доступа:
| qreal | tabStopDistance() const |
| void | setTabStopDistance(qreal distance) |
textInteractionFlags : Qt::TextInteractionFlags
Указывает, как виджет должен взаимодействовать с пользовательским вводом.
Значение по умолчанию зависит от того, является ли QTextEdit только для чтения или редактируемым, и является ли это QTextBrowser или нет.
Функции доступа:
| Qt::TextInteractionFlags | textInteractionFlags() const |
| void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
undoRedoEnabled : bool
Это свойство указывает, включены ли отмена и повтор.
Пользователи могут отменить или повторить действия только если это свойство истинно и если существует действие, которое можно отменить (или повторить).
Функции доступа:
| bool | isUndoRedoEnabled() const |
| void | setUndoRedoEnabled(bool enable) |
wordWrapMode : QTextOption::WrapMode
Это свойство определяет режим, который QTextEdit использует для перевода текста по словам.
По умолчанию это свойство установлено в QTextOption::WrapAtWordBoundaryOrAnywhere.
Функции доступа:
| QTextOption::WrapMode | wordWrapMode() const |
| void | setWordWrapMode(QTextOption::WrapMode policy) |
См. также QTextOption::WrapMode.
Документация по членам функций
QTextEdit::QTextEdit(const QString &text, QWidget *parent = nullptr)
Создаёт QTextEdit с родителем parent. Текстовый редактор будет отображать текст text. Текст интерпретируется как html.
QTextEdit::QTextEdit(QWidget *parent = nullptr)
Создаёт пустой QTextEdit с родителем parent.
[slot] void QTextEdit::append(const QString &text)
Добавляет новый абзац с текстом text в конец текстового редактора.
Примечание: Новый добавленный абзац будет иметь тот же формат символов и абзаца, что и текущий абзац, определяемый положением курсора.
См. также currentCharFormat() и QTextCursor::blockFormat().
[slot] void QTextEdit::clear()
Удаляет весь текст в текстовом редакторе.
Примечания:
- История отмены/повторного выполнения также очищается.
- currentCharFormat() сбрасывается, если textCursor() не находится в начале документа.
См. также cut(), setPlainText(), и setHtml().
[slot] void QTextEdit::copy()
Копирует выделенный текст в буфер обмена.
См. также copyAvailable().
[signal] void QTextEdit::copyAvailable(bool yes)
Этот сигнал излучается, когда текст выделен или отменён в текстовом редакторе.
Когда текст выделен, этот сигнал излучается с yes установленным в true. Если текст не выделен или выделенный текст отменён, этот сигнал излучается с yes установленным в false.
Если yes истинно, то copy() может быть использован для копирования выделения в буфер обмена. Если yes ложно, то copy() ничего не делает.
См. также selectionChanged().
[signal] void QTextEdit::currentCharFormatChanged(const QTextCharFormat &f)
Этот сигнал излучается, если формат текущего символа изменился, например, из-за изменения положения курсора.
Новый формат — f.
См. также setCurrentCharFormat().
[signal] void QTextEdit::cursorPositionChanged()
Этот сигнал излучается всякий раз, когда меняется положение курсора.
[slot] void QTextEdit::cut()
Копирует выделенный текст в буфер обмена и удаляет его из текстового редактора.
Если текст не выделен, ничего не происходит.
[slot] void QTextEdit::insertHtml(const QString &text)
Удобный слот, который вставляет text, предполагая, что она имеет форматирование HTML, в текущей позиции курсора.
Это эквивалентно:
edit->textCursor().insertHtml(fragment);
Примечание: При использовании этой функции с таблицей стилей, таблица стилей будет применяться только к текущему блоку в документе. Для применения таблицы стилей ко всему документу, используйте QTextDocument::setDefaultStyleSheet() вместо этого.
[slot] void QTextEdit::insertPlainText(const QString &text)
Удобный слот, который вставляет text в текущей позиции курсора.
Это эквивалентно
edit->textCursor().insertText(text);
[slot] void QTextEdit::paste()
Вставляет текст из буфера обмена в текстовое поле в текущей позиции курсора.
Если в буфере обмена нет текста, ничего не происходит.
Чтобы изменить поведение этой функции, т.е. изменить то, что QTextEdit может вставить и как это делается, переопределите виртуальные функции canInsertFromMimeData() и insertFromMimeData().
[slot] void QTextEdit::redo()
Повторяет последнюю операцию.
Если нет операции для повторения, т.е. нет шага повтора в истории отмены/повтора, ничего не происходит.
См. также undo().
[signal] void QTextEdit::redoAvailable(bool available)
Этот сигнал испускается всякий раз, когда операции повтора становятся доступными (available равно true) или недоступными (available равно false).
[slot] void QTextEdit::scrollToAnchor(const QString &name)
Прокручивает текстовое поле так, чтобы якорь с заданным name был виден; ничего не делает, если name пустая, или уже видна, или не найдена.
[slot] void QTextEdit::selectAll()
Выделяет весь текст.
См. также copy(), cut() и textCursor().
[signal] void QTextEdit::selectionChanged()
Этот сигнал испускается всякий раз, когда изменяется выделение.
См. также copyAvailable().
[slot] void QTextEdit::setAlignment(Qt::Alignment a)
Устанавливает выравнивание текущего абзаца на a. Допустимые выравнивания — Qt::AlignLeft, Qt::AlignRight, Qt::AlignJustify и Qt::AlignCenter (горизонтальное центрирование).
См. также alignment().
[slot] void QTextEdit::setCurrentFont(const QFont &f)
Устанавливает шрифт текущего формата на f.
См. также currentFont(), setFontPointSize() и setFontFamily().
[slot] void QTextEdit::setFontFamily(const QString &fontFamily)
Устанавливает семейство шрифтов текущего формата на fontFamily.
См. также fontFamily() и setCurrentFont().
[slot] void QTextEdit::setFontItalic(bool italic)
Если italic равно true, устанавливает текущий формат в курсив; в противном случае устанавливает текущий формат в некурсив.
См. также fontItalic().
[slot] void QTextEdit::setFontPointSize(qreal s)
Устанавливает размер шрифта текущего формата на s.
Обратите внимание, что если s равно нулю или отрицательно, поведение этой функции не определено.
См. также fontPointSize(), setCurrentFont() и setFontFamily().
[slot] void QTextEdit::setFontUnderline(bool underline)
Если underline равно true, устанавливает текущий формат в подчеркнутый; в противном случае устанавливает текущий формат в непрочеркнутый.
См. также fontUnderline().
[slot] void QTextEdit::setFontWeight(int weight)
Устанавливает начертание шрифта текущего формата на заданное значение weight, где значение находится в диапазоне, определенном перечислением QFont::Weight.
См. также fontWeight(), setCurrentFont() и setFontFamily().
[slot] void QTextEdit::setPlainText(const QString &text)
Изменяет текст текстового поля на строку text. Любой предыдущий текст удаляется.
Примечания:
- text интерпретируется как обычный текст.
- История отмены/повтора также очищается.
- currentCharFormat() сбрасывается, если textCursor() не находится в начале документа.
Примечание: Функция-сеттер для свойства plainText.
См. также toPlainText().
[slot] void QTextEdit::setText(const QString &text)
Устанавливает текст текстового поля на text. Текст может быть обычным или HTML, и текстовое поле попытается определить правильный формат.
Используйте setHtml() или setPlainText() напрямую, чтобы избежать угадывания формата текстовым полем.
См. также toPlainText() и toHtml().
[slot] void QTextEdit::setTextBackgroundColor(const QColor &c)
Устанавливает цвет фона текста текущего формата на c.
См. также textBackgroundColor().
[slot] void QTextEdit::setTextColor(const QColor &c)
Устанавливает цвет текста текущего формата на c.
См. также textColor().
[signal] void QTextEdit::textChanged()
Этот сигнал испускается всякий раз, когда изменяется содержимое документа; например, когда вставляется или удаляется текст, или когда применяется форматирование.
Примечание: Сигнал-уведомление для свойства html. Сигнал-уведомление для свойства markdown.
[slot] void QTextEdit::undo()
Отменяет последнюю операцию.
Если нет операции для отмены, т.е. нет шага отмены в истории отмены/повтора, ничего не происходит.
См. также redo().
[signal] void QTextEdit::undoAvailable(bool available)
Этот сигнал испускается всякий раз, когда операции отмены становятся доступными (available равно true) или недоступными (available равно false).
[slot] void QTextEdit::zoomIn(int range = 1)
Увеличивает масштаб текста, делая базовый размер шрифта на range пунктов больше и пересчитывая все размеры шрифтов на новый размер. Это не изменяет размер изображений.
См. также zoomOut().
[slot] void QTextEdit::zoomOut(int range = 1)
Уменьшает масштаб текста, уменьшая базовый размер шрифта на range пунктов и пересчитывая все размеры шрифтов на новый размер. Это не изменяет размер изображений.
См. также zoomIn().
[virtual] QTextEdit::~QTextEdit()
Деструктор.
Qt::Alignment QTextEdit::alignment() const
Возвращает выравнивание текущего абзаца.
См. также setAlignment().
QString QTextEdit::anchorAt(const QPoint &pos) const
Возвращает ссылку на якорь в позиции pos, или пустую строку, если якоря в этой точке нет.
[virtual protected] bool QTextEdit::canInsertFromMimeData(const QMimeData *source) const
Эта функция возвращает true, если содержимое объекта MIME-данных, указанного параметром source, может быть декодировано и вставлено в документ. Она вызывается, например, во время операции перетаскивания, когда курсор мыши попадает в этот виджет, и необходимо определить, можно ли принять операцию перетаскивания и опускания.
Переопределите эту функцию, чтобы включить поддержку перетаскивания и опускания для дополнительных типов MIME.
bool QTextEdit::canPaste() const
Возвращает значение, указывающее, можно ли вставить текст из буфера обмена в текстовый редактор.
[override virtual protected] void QTextEdit::changeEvent(QEvent *e)
Переопределяет: QFrame::changeEvent(QEvent *ev).
[override virtual protected] void QTextEdit::contextMenuEvent(QContextMenuEvent *event)
Переопределяет: QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e).
Отображает стандартное контекстное меню, созданное с помощью createStandardContextMenu().
Если вы не хотите, чтобы текстовый редактор имел контекстное меню, вы можете установить его contextMenuPolicy в Qt::NoContextMenu. Если вы хотите настроить контекстное меню, переопределите эту функцию. Если вы хотите расширить стандартное контекстное меню, переопределите эту функцию, вызовите createStandardContextMenu() и расширьте возвращаемое меню.
Информация об событии передается в объекте event.
void MyTextEdit::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *menu = createStandardContextMenu();
menu->addAction(tr("My Menu Item"));
//...
menu->exec(event->globalPos());
delete menu;
}
[virtual protected] QMimeData *QTextEdit::createMimeDataFromSelection() const
Эта функция возвращает новый объект MIME-данных для представления содержимого текущего выделения текстового редактора. Она вызывается, когда выделение необходимо упаковать в новый объект QMimeData; например, когда начинается операция перетаскивания или когда данные копируются в буфер обмена.
Если вы переопределите эту функцию, обратите внимание, что владение возвращенным объектом QMimeData передается вызывающему коду. Выделение можно получить, используя функцию textCursor().
QMenu *QTextEdit::createStandardContextMenu()
Эта функция создает стандартное контекстное меню, которое отображается, когда пользователь щелкает правой кнопкой мыши в текстовом редакторе. Она вызывается из обработчика contextMenuEvent() по умолчанию. Владение всплывающим меню передается вызывающему коду.
Рекомендуется использовать версию createStandardContextMenu(QPoint), которая позволит активировать действия, зависящие от того, где пользователь щелкнул.
QMenu *QTextEdit::createStandardContextMenu(const QPoint &position)
Эта функция создает стандартное контекстное меню, которое отображается, когда пользователь щелкает правой кнопкой мыши в текстовом редакторе. Она вызывается из обработчика contextMenuEvent() по умолчанию и принимает position в координатах документа, где произошел щелчок мышью. Это позволяет активировать действия, чувствительные к позиции щелчка. Владение всплывающим меню передается вызывающему коду.
QTextCharFormat QTextEdit::currentCharFormat() const
Возвращает шрифт, используемый при вставке нового текста.
См. также setCurrentCharFormat().
QFont QTextEdit::currentFont() const
Возвращает шрифт текущего формата.
См. также setCurrentFont(), setFontFamily() и setFontPointSize().
QTextCursor QTextEdit::cursorForPosition(const QPoint &pos) const
возвращает QTextCursor в позиции pos (в координатах области просмотра).
QRect QTextEdit::cursorRect(const QTextCursor &cursor) const
возвращает прямоугольник (в координатах области просмотра), который включает в себя cursor.
QRect QTextEdit::cursorRect() const
возвращает прямоугольник (в координатах области просмотра), который включает в себя курсор текстового редактора.
[override virtual protected] void QTextEdit::dragEnterEvent(QDragEnterEvent *e)
Переопределяет: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).
[override virtual protected] void QTextEdit::dragLeaveEvent(QDragLeaveEvent *e)
Переопределяет: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).
[override virtual protected] void QTextEdit::dragMoveEvent(QDragMoveEvent *e)
Переопределяет: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).
[override virtual protected] void QTextEdit::dropEvent(QDropEvent *e)
Переопределяет: QAbstractScrollArea::dropEvent(QDropEvent *event).
void QTextEdit::ensureCursorVisible()
Обеспечивает видимость курсора, прокручивая текстовый редактор при необходимости.
QList<QTextEdit::ExtraSelection> QTextEdit::extraSelections() const
Возвращает ранее установленные дополнительные выделения.
См. также setExtraSelections().
bool QTextEdit::find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
Ищет следующее вхождение строки exp с использованием заданных options. Возвращает true если exp найдено и изменяет курсор, чтобы выделить совпадение; в противном случае возвращает false.
[since 5.13] bool QTextEdit::find(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
Это перегруженная функция.
Ищет следующее вхождение, соответствующее регулярному выражению exp, используя заданные options. Опция QTextDocument::FindCaseSensitively игнорируется для этого переопределения, используйте вместо этого QRegularExpression::CaseInsensitiveOption.
Возвращает true если совпадение найдено и изменяет курсор, чтобы выделить совпадение; в противном случае возвращает false.
Эта функция была введена в Qt 5.13.
[override virtual protected] void QTextEdit::focusInEvent(QFocusEvent *e)
Переопределяет: QWidget::focusInEvent(QFocusEvent *event).
[override virtual protected] bool QTextEdit::focusNextPrevChild(bool next)
Переопределяет: QWidget::focusNextPrevChild(bool next).
[override virtual protected] void QTextEdit::focusOutEvent(QFocusEvent *e)
Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).
QString QTextEdit::fontFamily() const
Возвращает имя начертания шрифта текущего формата.
См. также setFontFamily(), setCurrentFont() и setFontPointSize().
bool QTextEdit::fontItalic() const
Возвращает true если шрифт текущего формата курсивный; в противном случае возвращает false.
См. также setFontItalic().
qreal QTextEdit::fontPointSize() const
Возвращает размер шрифта текущего формата.
См. также setFontFamily(), setCurrentFont() и setFontPointSize().
bool QTextEdit::fontUnderline() const
Возвращает true если шрифт текущего формата подчеркнутый; в противном случае возвращает false.
См. также setFontUnderline().
int QTextEdit::fontWeight() const
Возвращает начертание шрифта текущего формата.
См. также setFontWeight(), setCurrentFont(), setFontPointSize(), и QFont::Weight.
[override virtual protected] void QTextEdit::inputMethodEvent(QInputMethodEvent *e)
Переопределяет: QWidget::inputMethodEvent(QInputMethodEvent *event).
[override virtual] QVariant QTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const
Переопределяет: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.
[virtual protected] void QTextEdit::insertFromMimeData(const QMimeData *source)
Эта функция вставляет содержимое объекта MIME-данных, указанного в source, в текстовый редактор в текущей позиции курсора. Она вызывается всякий раз, когда текст вставляется в результате операции вставки из буфера обмена или при вставке данных из операции перетаскивания.
Переопределите эту функцию, чтобы включить поддержку перетаскивания для дополнительных типов MIME.
[override virtual protected] void QTextEdit::keyPressEvent(QKeyEvent *e)
Переопределяет: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).
[override virtual protected] void QTextEdit::keyReleaseEvent(QKeyEvent *e)
Переопределяет: QWidget::keyReleaseEvent(QKeyEvent *event).
[virtual invokable] QVariant QTextEdit::loadResource(int type, const QUrl &name)
Загружает ресурс, заданный указанным type и name.
Эта функция является расширением QTextDocument::loadResource().
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также QTextDocument::loadResource().
void QTextEdit::mergeCurrentCharFormat(const QTextCharFormat &modifier)
Объединяет свойства, указанные в modifier, в текущий формат символов, вызывая QTextCursor::mergeCharFormat на курсоре редактора. Если в редакторе есть выделение, то свойства modifier применяются непосредственно к выделению.
См. также QTextCursor::mergeCharFormat().
[override virtual protected] void QTextEdit::mouseDoubleClickEvent(QMouseEvent *e)
Переопределяет: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).
[override virtual protected] void QTextEdit::mouseMoveEvent(QMouseEvent *e)
Переопределяет: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).
[override virtual protected] void QTextEdit::mousePressEvent(QMouseEvent *e)
Переопределяет: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).
[override virtual protected] void QTextEdit::mouseReleaseEvent(QMouseEvent *e)
Переопределяет: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).
void QTextEdit::moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor)
Перемещает курсор, выполняя заданную operation.
Если mode равен QTextCursor::KeepAnchor, курсор выделяет текст, над которым он перемещается. Это тот же эффект, которого достигает пользователь, удерживая нажатой клавишу Shift и перемещая курсор клавишами.
См. также QTextCursor::movePosition().
[override virtual protected] void QTextEdit::paintEvent(QPaintEvent *event)
Переопределяет: QAbstractScrollArea::paintEvent(QPaintEvent *event).
Обработчик этого события может быть переопределён в подклассе для получения событий рисования, переданных в event. Обычно нет необходимости переопределять эту функцию в подклассе QTextEdit.
Предупреждение: Не следует изменять базовый документ в переопределённой реализации этой функции.
void QTextEdit::print(QPagedPaintDevice *printer) const
Функция для удобства печати документа текстового редактора на заданном printer. Это эквивалентно вызову метода print документа напрямую, за исключением того, что эта функция также поддерживает QPrinter::Selection в качестве диапазона печати.
См. также QTextDocument::print().
[override virtual protected] void QTextEdit::resizeEvent(QResizeEvent *e)
Переопределяет: QAbstractScrollArea::resizeEvent(QResizeEvent *event).
[override virtual protected] void QTextEdit::scrollContentsBy(int dx, int dy)
Переопределяет: QAbstractScrollArea::scrollContentsBy(int dx, int dy).
void QTextEdit::setCurrentCharFormat(const QTextCharFormat &format)
Устанавливает формат символов, который будет использоваться при вставке нового текста в format, вызывая QTextCursor::setCharFormat() на курсоре редактора. Если в редакторе есть выделение, то формат символов применяется непосредственно к выделению.
См. также currentCharFormat().
void QTextEdit::setExtraSelections(const QList<QTextEdit::ExtraSelection> &selections)
Эта функция позволяет временно помечать определённые области в документе заданным цветом, указанным как selections. Это может быть полезно, например, в редакторе программ для пометки всей строки текста определённым фоновым цветом для указания наличия точки останова.
См. также QTextEdit::ExtraSelection и extraSelections().
void QTextEdit::setTextCursor(const QTextCursor &cursor)
Устанавливает видимый cursor.
См. также textCursor().
[override virtual protected] void QTextEdit::showEvent(QShowEvent *)
Переопределяет: QWidget::showEvent(QShowEvent *event).
QColor QTextEdit::textBackgroundColor() const
Возвращает цвет фона текста текущего формата.
См. также setTextBackgroundColor().
QColor QTextEdit::textColor() const
Возвращает цвет текста текущего формата.
См. также setTextColor().
QTextCursor QTextEdit::textCursor() const
Возвращает копию QTextCursor, представляющую текущий видимый курсор. Обратите внимание, что изменения в возвращённом курсоре не влияют на курсор QTextEdit; используйте setTextCursor() для обновления видимого курсора.
См. также setTextCursor().
QString QTextEdit::toPlainText() const
QString QTextEdit::toPlainText() const
Возвращает текст текстового редактора в виде простого текста.
Примечание: Функция-получатель для свойства plainText.
См. также QTextEdit::setPlainText().
[override virtual protected] void QTextEdit::wheelEvent(QWheelEvent *e)
Переопределяет: QAbstractScrollArea::wheelEvent(QWheelEvent *e).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtextedit.html