Класс QTextEdit
Класс QTextEdit предоставляет виджет, используемый для редактирования и отображения простого и форматированного текста. Подробнее...
| Заголовок: | #include <QTextEdit> |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractScrollArea |
| Наследует: |
Публичные типы
| структура | ExtraSelection |
| флаги | AutoFormatting |
| перечисление | AutoFormattingFlag { AutoNone, AutoBulletList, AutoAll } |
| перечисление | LineWrapMode { NoWrap, WidgetWidth, FixedPixelWidth, FixedColumnWidth } |
Свойства
|
|
Открытые функции
| QTextEdit(const QString &text, QWidget *parent = nullptr) | |
| QTextEdit(QWidget *parent = nullptr) | |
| virtual | ~QTextEdit() |
| bool | acceptRichText() const |
| Qt::Alignment | alignment() const |
| QString | anchorAt(const QPoint &pos) const |
| QTextEdit::AutoFormatting | autoFormatting() const |
| bool | canPaste() const |
| QMenu * | createStandardContextMenu() |
| QMenu * | createStandardContextMenu(const QPoint &position) |
| QTextCharFormat | currentCharFormat() const |
| QFont | currentFont() const |
| QTextCursor | cursorForPosition(const QPoint &pos) const |
| QRect | cursorRect(const QTextCursor &cursor) const |
| QRect | cursorRect() const |
| int | cursorWidth() const |
| QTextDocument * | document() const |
| QString | documentTitle() const |
| void | ensureCursorVisible() |
| QList<QTextEdit::ExtraSelection> | extraSelections() const |
| bool | find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags()) |
| bool | find(const QRegExp &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags()) |
| bool | find(const QRegularExpression &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags()) |
| QString | fontFamily() const |
| bool | fontItalic() const |
| qreal | fontPointSize() const |
| bool | fontUnderline() const |
| int | fontWeight() const |
| bool | isReadOnly() const |
| bool | isUndoRedoEnabled() const |
| int | lineWrapColumnOrWidth() const |
| QTextEdit::LineWrapMode | lineWrapMode() const |
| virtual QVariant | loadResource(int type, const QUrl &name) |
| void | mergeCurrentCharFormat(const QTextCharFormat &modifier) |
| void | moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor) |
| bool | overwriteMode() const |
| QString | placeholderText() const |
| void | print(QPagedPaintDevice *printer) const |
| void | setAcceptRichText(bool accept) |
| void | setAutoFormatting(QTextEdit::AutoFormatting features) |
| void | setCurrentCharFormat(const QTextCharFormat &format) |
| void | setCursorWidth(int width) |
| void | setDocument(QTextDocument *document) |
| void | setDocumentTitle(const QString &title) |
| void | setExtraSelections(const QList<QTextEdit::ExtraSelection> &selections) |
| void | setLineWrapColumnOrWidth(int w) |
| void | setLineWrapMode(QTextEdit::LineWrapMode mode) |
| void | setOverwriteMode(bool overwrite) |
| void | setPlaceholderText(const QString &placeholderText) |
| void | setReadOnly(bool ro) |
| void | setTabChangesFocus(bool b) |
| void | setTabStopDistance(qreal distance) |
| void | setTextCursor(const QTextCursor &cursor) |
| void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
| void | setUndoRedoEnabled(bool enable) |
| void | setWordWrapMode(QTextOption::WrapMode policy) |
| bool | tabChangesFocus() const |
| qreal | tabStopDistance() const |
| QColor | textBackgroundColor() const |
| QColor | textColor() 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 используется только для чтения, действия клавиш ограничены навигацией, а текст можно выделять только с помощью мыши:
| Нажатие клавиш | Действие |
|---|---|
| Вверх | Перемещение на строку вверх. |
| Вниз | Перемещение на строку вниз. |
| Влево | Перемещение на один символ влево. |
| Вправо | Перемещение на один символ вправо. |
| Пробел вверх | Перемещение на одну страницу вверх (в области просмотра). |
| Пробел вниз | Перемещение на одну страницу вниз (в области просмотра). |
| Начало | Перемещение в начало текста. |
| Конец | Перемещение в конец текста. |
| Alt+Колесо | Перемещение по странице по горизонтали (Колесо — колесо мыши). |
| Ctrl+Колесо | Изменение масштаба текста. |
| Ctrl+A | Выделение всего текста. |
Текстовое поле может предоставить некоторую метаинформацию. Например, функция documentTitle() вернёт текст из HTML-тегов <title>.
Примечание: Масштабирование HTML-документов работает только если размер шрифта не задан фиксированным.
Использование QTextEdit в качестве редактора
Вся информация об использовании QTextEdit в качестве виджета отображения также применима и здесь.
Атрибуты текущего формата символов задаются с помощью setFontItalic(), setFontWeight(), setFontUnderline(), setFontFamily(), setFontPointSize(), setTextColor() и setCurrentFont(). Выравнивание текущего абзаца задаётся с помощью setAlignment().
Выбор текста обрабатывается классом QTextCursor, который предоставляет функциональность для создания выделений, получения текстового содержимого или удаления выделений. Вы можете получить объект, соответствующий отображаемому курсору пользователя, с помощью метода textCursor(). Если вы хотите установить выделение в QTextEdit, просто создайте его на объекте QTextCursor, а затем сделайте этот курсор видимым с помощью setTextCursor(). Выделение можно скопировать в буфер обмена с помощью copy() или вырезать в буфер обмена с помощью cut(). Весь текст можно выделить, используя selectAll().
Когда курсор перемещается, и атрибуты форматирования базового уровня изменяются, сигнал currentCharFormatChanged() излучается, чтобы отразить новые атрибуты в новом положении курсора.
Сигнал textChanged() излучается всякий раз, когда текст изменяется (в результате setText() или через сам редактор).
QTextEdit содержит объект QTextDocument, который можно получить с помощью метода document(). Вы также можете установить свой собственный объект документа с помощью setDocument().
QTextDocument предоставляет функцию isModified(), которая вернёт true, если текст был изменён с момента загрузки или с последнего вызова setModified с аргументом false. Кроме того, он предоставляет методы для отмены и повтора.
Перетаскивание
QTextEdit также поддерживает пользовательское поведение перетаскивания. По умолчанию QTextEdit будет вставлять обычный текст, HTML и форматированный текст, когда пользователь перетащит данные этих типов MIME на документ. Для добавления поддержки дополнительных типов MIME переопределите canInsertFromMimeData() и insertFromMimeData().
Например, чтобы разрешить пользователю перетаскивать изображение на 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 | Повторяет последнее действие. |
| Left | Перемещает курсор на один символ влево. |
| Ctrl+Left | Перемещает курсор на одно слово влево. |
| Right | Перемещает курсор на один символ вправо. |
| Ctrl+Right | Перемещает курсор на одно слово вправо. |
| Up | Перемещает курсор на одну строку вверх. |
| Down | Перемещает курсор на одну строку вниз. |
| PageUp | Перемещает курсор на одну страницу вверх. |
| PageDown | Перемещает курсор на одну страницу вниз. |
| Home | Перемещает курсор в начало строки. |
| Ctrl+Home | Перемещает курсор в начало текста. |
| End | Перемещает курсор в конец строки. |
| Ctrl+End | Перемещает курсор в конец текста. |
| Alt+Wheel | Прокручивает страницу по горизонтали (Wheel — колесо мыши). |
Для выделения (маркировки) текста удерживайте нажатой клавишу Shift, одновременно нажимая одну из клавиш перемещения, например, Shift+Right выделит символ справа, а Shift+Ctrl+Right — слово справа и т. д.
См. также QTextDocument, QTextCursor, Пример приложения, Пример синтаксического анализатора и Обработка форматированного текста.
Документация по типам членов
перечисление 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.
Это свойство было введено в Qt 4.1.
Функции доступа:
| 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.
Это свойство было введено в Qt 4.2.
Функции доступа:
| 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 (новый текст не перезаписывает существующий текст).
Этот параметр был представлен в Qt 4.1.
Функции доступа:
| bool | overwriteMode() const |
| void | setOverwriteMode(bool overwrite) |
placeholderText : QString
Этот параметр содержит текст-заполнитель редактора.
Установка этого параметра заставляет редактор отображать текст-заполнитель серым цветом, пока документ (document()) пуст.
По умолчанию этот параметр содержит пустую строку.
Этот параметр был представлен в Qt 5.2.
Функции доступа:
| QString | placeholderText() const |
| void | setPlaceholderText(const QString &placeholderText) |
См. также document().
plainText : QString
Этот параметр получает и устанавливает содержимое текстового редактора в виде простого текста. Предыдущее содержимое удаляется, а история отмены/повторного выполнения сбрасывается при установке параметра. currentCharFormat() также сбрасывается, если textCursor() не находится в начале документа.
Если текстовый редактор имеет другой тип содержимого, он не будет заменён простым текстом, если вы вызываете toPlainText(). Единственным исключением из этого является неразрывный пробел, nbsp;, который будет преобразован в стандартный пробел.
По умолчанию, для редактора без содержимого, этот параметр содержит пустую строку.
Этот параметр был представлен в Qt 4.3.
Функции доступа:
| 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) |
tabStopDistance : qreal
Этот параметр содержит расстояние до отступа табуляции в пикселях.
По умолчанию этот параметр содержит значение 80 пикселей.
Этот параметр был представлен в Qt 5.10.
Функции доступа:
| qreal | tabStopDistance() const |
| void | setTabStopDistance(qreal distance) |
textInteractionFlags : Qt::TextInteractionFlags
Указывает, как виджет должен взаимодействовать с пользовательским вводом.
Значение по умолчанию зависит от того, является ли QTextEdit только для чтения или редактируемым, а также от того, является ли это QTextBrowser или нет.
Этот параметр был представлен в Qt 4.2.
Функции доступа:
| Qt::TextInteractionFlags | textInteractionFlags() const |
| void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
undoRedoEnabled : bool
Этот параметр указывает, включены ли отмена и повтор.
Пользователи могут отменить или повторить действия только если этот параметр имеет значение true и если существует действие, которое может быть отменено (или повторено).
Функции доступа:
| 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 имеет значение true, то можно использовать copy() для копирования выделения в буфер обмена. Если yes имеет значение false, то 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()
Повторяет последнюю операцию.
Если нет операции для повторения, т.е. в истории отмены/повторения нет шага повтора, ничего не происходит.
Эта функция была добавлена в Qt 4.2.
См. также undo().
[signal] void QTextEdit::redoAvailable(bool available)
Этот сигнал излучается всякий раз, когда операции повторения становятся доступны (available истинно) или недоступны (available ложно).
[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 истинно, устанавливает текущий формат в курсив; в противном случае, устанавливает текущий формат в не-курсив.
См. также fontItalic().
[slot] void QTextEdit::setFontPointSize(qreal s)
Устанавливает размер шрифта текущего формата на s.
Обратите внимание, что если s равно нулю или отрицательно, поведение этой функции не определено.
См. также fontPointSize(), setCurrentFont(), и setFontFamily().
[slot] void QTextEdit::setFontUnderline(bool underline)
Если underline истинно, устанавливает текущий формат в подчеркнутый; в противном случае, устанавливает текущий формат в не-подчеркнутый.
См. также 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() напрямую, чтобы избежать угадывания текстовым полем.
Эта функция была добавлена в Qt 4.2.
См. также toPlainText() и toHtml().
[slot] void QTextEdit::setTextBackgroundColor(const QColor &c)
Устанавливает цвет фона текста текущего формата на c.
Эта функция была добавлена в Qt 4.4.
См. также textBackgroundColor().
[slot] void QTextEdit::setTextColor(const QColor &c)
Устанавливает цвет текста текущего формата на c.
См. также textColor().
[signal] void QTextEdit::textChanged()
Этот сигнал излучается всякий раз, когда содержимое документа изменяется; например, когда вставляется или удаляется текст, или применяется форматирование.
Примечание: Сигнал-уведомление для свойства html. Сигнал-уведомление для свойства markdown.
[slot] void QTextEdit::undo()
Отменяет последнюю операцию.
Если нет операции для отмены, т.е. в истории отмены/повторения нет шага отмены, ничего не происходит.
Эта функция была добавлена в Qt 4.2.
См. также redo().
[signal] void QTextEdit::undoAvailable(bool available)
Этот сигнал излучается всякий раз, когда операции отмены становятся доступны (available истинно) или недоступны (available ложно).
[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
Возвращает значение, указывающее, можно ли вставить текст из буфера обмена в текстовый редактор.
Эта функция была добавлена в Qt 4.2.
[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() по умолчанию и принимает позицию в координатах документа, где был щелчок мыши. Это может активировать действия, чувствительные к положению щелчка. Владение вызываемым меню передаётся вызывающей стороне.
Эта функция была добавлена в Qt 4.4.
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
Возвращает ранее заданные дополнительные выделения.
Эта функция была добавлена в Qt 4.2.
См. также setExtraSelections().
bool QTextEdit::find(const QString &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
Ищет следующее вхождение строки exp, используя заданные options. Возвращает true если exp найдена и изменяет курсор, чтобы выделить совпадение; в противном случае возвращает false.
bool QTextEdit::find(const QRegExp &exp, QTextDocument::FindFlags options = QTextDocument::FindFlags())
Это перегруженная функция.
Ищет следующее вхождение, соответствующее регулярному выражению exp, используя заданные options. Опция QTextDocument::FindCaseSensitively игнорируется для этой перегрузки, используйте QRegExp::caseSensitivity вместо.
Возвращает true если совпадение найдено и изменяет курсор, чтобы выделить совпадение; в противном случае возвращает false.
Эта функция была добавлена в Qt 5.3.
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] 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 и перемещая курсор клавишами со стрелками.
Эта функция была введена в Qt 4.2.
См. также QTextCursor::movePosition().
[override virtual protected] void QTextEdit::paintEvent(QPaintEvent *event)
Переопределяет: QAbstractScrollArea::paintEvent(QPaintEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий рисования, переданных в event. Обычно нет необходимости переопределять эту функцию в подклассе QTextEdit.
Предупреждение: Не изменяйте базовый текстовый документ из реализации этой функции.
void QTextEdit::print(QPagedPaintDevice *printer) const
Функция-утилита для печати документа текстового редактора на заданный printer. Это эквивалентно вызову метода печати документа напрямую, за исключением того, что эта функция также поддерживает QPrinter::Selection в качестве диапазона печати.
Эта функция была введена в Qt 4.3.
См. также 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. Это может быть полезно, например, в редакторе программ для выделения целой строки текста заданным цветом фона для обозначения наличия точки останова.
Эта функция была введена в Qt 4.2.
См. также 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
Возвращает цвет фона текста текущего формата.
Эта функция была введена в Qt 4.4.
См. также 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-5.15/qtextedit.html