Класс QTextEdit
Класс QTextEdit предоставляет виджет для редактирования и отображения простого и форматированного текста. Подробнее...
| Заголовок: | #include <QTextEdit> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| 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 | принимать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, например, это часто полезно в просмотре журналов, то можно использовать свойство максимального количества блоков QTextDocument для этого.
Настройки горячих клавиш при чтении
Когда QTextEdit используется в режиме только для чтения, наборы горячих клавиш ограничены навигацией, а текст может быть выделен только мышью:
| Нажатия клавиш | Действие |
|---|---|
| Вверх | Перемещает на строку вверх. |
| Вниз | Перемещает на строку вниз. |
| Влево | Перемещает на символ влево. |
| Вправо | Перемещает на символ вправо. |
| PageUp | Перемещает на страницу вверх. |
| PageDown | Перемещает на страницу вниз. |
| Home | Перемещает к началу текста. |
| End | Перемещает к концу текста. |
| 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 в документ. Переопределите 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 | Повторяет последнюю операцию. |
| 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, 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
Это свойство содержит текст-заполнитель редактора.
Установка этого свойства заставляет редактор отображать текст-заполнитель серым цветом, пока документ document() пуст.
По умолчанию, это свойство содержит пустую строку.
Это свойство было добавлено в Qt 5.2.
Функции доступа:
| QString | placeholderText() const |
| void | setPlaceholderText(const QString &placeholderText) |
См. также document().
plainText : QString
Это свойство содержит содержимое текстового редактора в виде простого текста.
Предыдущее содержимое удаляется, а история отмены/повторa сбрасывается при установке свойства. 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 пикселей.
Не устанавливайте значение меньше, чем horizontalAdvance() символа QChar::VisualTabCharacter, иначе символ табуляции будет отображаться неполностью.
Это свойство было добавлено в Qt 5.10.
Функции доступа:
| qreal | tabStopDistance() const |
| void | setTabStopDistance(qreal distance) |
См. также QTextOption::ShowTabsAndSpaces и QTextDocument::defaultTextOption.
textInteractionFlags : Qt::TextInteractionFlags
Определяет, как виджет должен взаимодействовать с вводом пользователя.
Значение по умолчанию зависит от того, является ли QTextEdit только для чтения или редактируемым, и является ли он QTextBrowser или нет.
Функции доступа:
| 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()
Удаляет весь текст из текстового редактора.
Примечания:
- История отмены/повторa также очищается.
- 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()
Повторяет последнюю операцию.
Если нет операции для повторения, т.е. нет шага повтора в истории отмены/повтора, ничего не происходит.
См. также 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
Возвращает значение, указывающее, можно ли вставить текст из буфера обмена в textedit.
[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.2/qtextedit.html