Класс QTextDocument
Класс QTextDocument хранит форматированный текст. Подробнее...
| Заголовок: | #include <QTextDocument> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследует: | QObject |
Примечание: Все функции в этом классе являются перевключенными.
Типы публичного доступа
| перечисление | FindFlag { FindBackward, FindCaseSensitively, FindWholeWords } |
| флаги | FindFlags |
| флаги | MarkdownFeatures |
| перечисление | MetaInformation { DocumentTitle, DocumentUrl } |
| ResourceProvider | |
| перечисление | ResourceType { UnknownResource, HtmlResource, ImageResource, StyleSheetResource, MarkdownResource, UserResource } |
| перечисление | Stacks { UndoStack, RedoStack, UndoAndRedoStacks } |
Свойства
|
|
Публичные функции
| QTextDocument(const QString &text, QObject *parent = nullptr) | |
| QTextDocument(QObject *parent = nullptr) | |
| virtual | ~QTextDocument() |
| void | addResource(int type, const QUrl &name, const QVariant &resource) |
| void | adjustSize() |
| QList<QTextFormat> | allFormats() const |
| int | availableRedoSteps() const |
| int | availableUndoSteps() const |
| QUrl | baseUrl() const |
| qreal | baselineOffset() const |
| QTextBlock | begin() const |
| int | blockCount() const |
| QChar | characterAt(int pos) const |
| int | characterCount() const |
| virtual void | clear() |
| void | clearUndoRedoStacks(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks) |
| QTextDocument * | clone(QObject *parent = nullptr) const |
| Qt::CursorMoveStyle | defaultCursorMoveStyle() const |
| QFont | defaultFont() const |
| QString | defaultStyleSheet() const |
| QTextOption | defaultTextOption() const |
| QAbstractTextDocumentLayout * | documentLayout() const |
| qreal | documentMargin() const |
| void | drawContents(QPainter *p, const QRectF &rect = QRectF()) |
| QTextBlock | end() const |
| QTextCursor | find(const QString &subString, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const |
| QTextCursor | find(const QString &subString, int position = 0, QTextDocument::FindFlags options = FindFlags()) const |
| QTextCursor | find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const |
| QTextCursor | find(const QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const |
| QTextBlock | findBlock(int pos) const |
| QTextBlock | findBlockByLineNumber(int lineNumber) const |
| QTextBlock | findBlockByNumber(int blockNumber) const |
| QTextBlock | firstBlock() const |
| qreal | idealWidth() const |
| qreal | indentWidth() const |
| bool | isEmpty() const |
| bool | isModified() const |
| bool | isRedoAvailable() const |
| bool | isUndoAvailable() const |
| bool | isUndoRedoEnabled() const |
| QTextBlock | lastBlock() const |
| int | lineCount() const |
| void | markContentsDirty(int position, int length) |
| int | maximumBlockCount() const |
| QString | metaInformation(QTextDocument::MetaInformation info) const |
| QTextObject * | object(int objectIndex) const |
| QTextObject * | objectForFormat(const QTextFormat &f) const |
| int | pageCount() const |
| QSizeF | pageSize() const |
| void | print(QPagedPaintDevice *printer) const |
| void | redo(QTextCursor *cursor) |
| QVariant | resource(int type, const QUrl &name) const |
| QTextDocument::ResourceProvider | resourceProvider() const |
| int | revision() const |
| QTextFrame * | rootFrame() const |
| void | setBaseUrl(const QUrl &url) |
| void | setBaselineOffset(qreal baseline) |
| void | setDefaultCursorMoveStyle(Qt::CursorMoveStyle style) |
| void | setDefaultFont(const QFont &font) |
| void | setDefaultStyleSheet(const QString &sheet) |
| void | setDefaultTextOption(const QTextOption &option) |
| void | setDocumentLayout(QAbstractTextDocumentLayout *layout) |
| void | setDocumentMargin(qreal margin) |
| void | setHtml(const QString &html) |
| void | setIndentWidth(qreal width) |
| void | setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) |
| void | setMaximumBlockCount(int maximum) |
| void | setMetaInformation(QTextDocument::MetaInformation info, const QString &string) |
| void | setPageSize(const QSizeF &size) |
| void | setPlainText(const QString &text) |
| void | setResourceProvider(const QTextDocument::ResourceProvider &provider) |
| void | setSubScriptBaseline(qreal baseline) |
| void | setSuperScriptBaseline(qreal baseline) |
| void | setTextWidth(qreal width) |
| void | setUndoRedoEnabled(bool enable) |
| void | setUseDesignMetrics(bool b) |
| QSizeF | size() const |
| qreal | subScriptBaseline() const |
| qreal | superScriptBaseline() const |
| qreal | textWidth() const |
| QString | toHtml() const |
| QString | toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const |
| QString | toPlainText() const |
| QString | toRawText() const |
| void | undo(QTextCursor *cursor) |
| bool | useDesignMetrics() const |
Public Slots
| void | redo() |
| void | setModified(bool m = true) |
| void | undo() |
Signals
| void | baseUrlChanged(const QUrl &url) |
| void | blockCountChanged(int newBlockCount) |
| void | contentsChange(int position, int charsRemoved, int charsAdded) |
| void | contentsChanged() |
| void | cursorPositionChanged(const QTextCursor &cursor) |
| void | documentLayoutChanged() |
| void | modificationChanged(bool changed) |
| void | redoAvailable(bool available) |
| void | undoAvailable(bool available) |
| void | undoCommandAdded() |
Static Public Members
| QTextDocument::ResourceProvider | defaultResourceProvider() |
| void | setDefaultResourceProvider(const QTextDocument::ResourceProvider &provider) |
Protected Functions
| virtual QTextObject * | createObject(const QTextFormat &format) |
| virtual QVariant | loadResource(int type, const QUrl &name) |
Detailed Description
QTextDocument — контейнер для структурированных документов форматированного текста, обеспечивающий поддержку стилизованного текста и различных типов элементов документа, таких как списки, таблицы, фреймы и изображения. Они могут быть созданы для использования в QTextEdit или использоваться независимо.
Каждый элемент документа описывается связанным объектом форматирования. Каждый объект форматирования рассматривается QTextDocuments как уникальный объект и может быть передан в objectForFormat(), чтобы получить элемент документа, к которому он применяется.
QTextDocument может быть изменён программно с помощью QTextCursor, а его содержимое может быть просмотрено путём обхода структуры документа. Вся структура документа хранится как иерархия элементов документа под корневым фреймом, доступным с помощью функции rootFrame(). В качестве альтернативы, если вам нужно просто перебрать текстовое содержимое документа, можно использовать begin(), end() и findBlock(), чтобы получить текстовые блоки, которые вы можете просмотреть и перебрать.
Макет документа определяется documentLayout(); вы можете создать свой собственный подкласс QAbstractTextDocumentLayout и установить его с помощью setDocumentLayout(), если хотите использовать собственную логику макета. Заголовок документа и другая метаинформация могут быть получены с помощью функции metaInformation(). Для документов, которые отображаются пользователям через класс QTextEdit, заголовок документа также доступен через функцию QTextEdit::documentTitle().
Удобные функции toPlainText() и toHtml() позволяют вам получить содержимое документа в виде обычного текста и HTML. Текст документа можно искать, используя функции find().
Отменить/повторить операции, выполненные над документом, можно с помощью функции setUndoRedoEnabled(). Система отмены/повтора может управляться виджетом редактора через слоты undo() и redo(); документ также предоставляет сигналы contentsChanged(), undoAvailable() и redoAvailable(), которые информируют подключенные виджеты редактора о состоянии системы отмены/повтора.
- Вставка или удаление символов. Последовательность вставок или удалений в одном текстовом блоке рассматривается как одна операция отмены/повтора.
- Вставка или удаление текстовых блоков. Последовательности вставок или удалений в одной операции (например, выделение и удаление текста) считаются одной операцией отмены/повтора.
- Изменение формата символов текста.
- Изменение формата текстовых блоков.
- Изменение формата группы текстовых блоков.
См. также QTextCursor, QTextEdit, Обработка форматированного текста и Пример объекта текста.
Документация типов членов
Перечисление QTextDocument::FindFlagflags QTextDocument::FindFlags
Это перечисление описывает доступные параметры для функции поиска QTextDocument. Параметры могут быть объединены с помощью операции ИЛИ из следующего списка:
| Постоянная | Значение | Описание |
|---|---|---|
QTextDocument::FindBackward |
0x00001 |
Производить поиск в обратном направлении вместо прямого. |
QTextDocument::FindCaseSensitively |
0x00002 |
По умолчанию поиск выполняется без учета регистра. Указание этого параметра изменяет поведение на поиск, учитывающий регистр. |
QTextDocument::FindWholeWords |
0x00004 |
Заставляет поиск соответствовать только целым словам. |
Тип FindFlags является псевдонимом для QFlags<FindFlag>. Он хранит комбинацию значений FindFlag, объединенных операцией ИЛИ.
Перечисление QTextDocument::MetaInformation
Это перечисление описывает различные типы метаданных, которые можно добавить в документ.
| Постоянная | Значение | Описание |
|---|---|---|
QTextDocument::DocumentTitle |
0 |
Заголовок документа. |
QTextDocument::DocumentUrl |
1 |
URL документа. Функция loadResource() использует этот URL в качестве базового при загрузке относительных ресурсов. |
См. также metaInformation() и setMetaInformation().
[alias, since 6.1] QTextDocument::ResourceProvider
Псевдоним типа std::function<QVariant(const QUrl&)>.
Этот псевдоним типа был введен в Qt 6.1.
Перечисление QTextDocument::ResourceType
Это перечисление описывает типы ресурсов, которые могут быть загружены функцией QTextDocument's loadResource() или QTextBrowser::setSource().
| Постоянная | Значение | Описание |
|---|---|---|
QTextDocument::UnknownResource |
0 |
Ресурс не загружен или тип ресурса неизвестен. |
QTextDocument::HtmlResource |
1 |
Ресурс содержит HTML. |
QTextDocument::ImageResource |
2 |
Ресурс содержит данные изображения. В настоящее время поддерживаются типы данных QMetaType::QPixmap и QMetaType::QImage. Если соответствующая переменная имеет тип QMetaType::QByteArray, Qt пытается загрузить изображение с помощью QImage::loadFromData. QMetaType::QIcon в настоящее время не поддерживается. Иконку необходимо сначала преобразовать в один из поддерживаемых типов, например, с помощью QIcon::pixmap. |
QTextDocument::StyleSheetResource |
3 |
Ресурс содержит CSS. |
QTextDocument::MarkdownResource |
4 |
Ресурс содержит Markdown. |
QTextDocument::UserResource |
100 |
Первое доступное значение для типов пользовательских ресурсов. |
См. также loadResource() и QTextBrowser::sourceType().
Перечисление QTextDocument::Stacks
| Постоянная | Значение | Описание |
|---|---|---|
QTextDocument::UndoStack |
0x01 |
Стек отмены. |
QTextDocument::RedoStack |
0x02 |
Стек повтора. |
QTextDocument::UndoAndRedoStacks |
UndoStack | RedoStack |
И стек отмены, и стек повтора. |
Документация свойств
[since 5.3] baseUrl : QUrl
Это свойство содержит базовый URL, используемый для разрешения относительных URL-адресов ресурсов в документе.
URL-адреса ресурсов разрешаются, чтобы быть в той же директории, что и целевой базовый URL, что означает, что любая часть пути после последнего «/» будет проигнорирована.
| Базовый URL | Относительный URL | Разрешенный URL |
|---|---|---|
| file:///path/to/content | images/logo.png | file:///path/to/images/logo.png |
| file:///path/to/content/ | images/logo.png | file:///path/to/content/images/logo.png |
| file:///path/to/content/index.html | images/logo.png | file:///path/to/content/images/logo.png |
| file:///path/to/content/images/ | ../images/logo.png | file:///path/to/content/images/logo.png |
Это свойство было добавлено в Qt 5.3.
Функции доступа:
| QUrl | baseUrl() const |
| void | setBaseUrl(const QUrl &url) |
Сигнал уведомления:
| void | baseUrlChanged(const QUrl &url) |
[read-only] blockCount : const int
Это свойство содержит количество текстовых блоков в документе.
Значение этого свойства не определено в документах с таблицами или фреймами.
По умолчанию, если определено, это свойство содержит значение 1.
Функции доступа:
| int | blockCount() const |
См. также lineCount() и characterCount().
defaultFont : QFont
Это свойство содержит шрифт по умолчанию, используемый для отображения текста документа.
Функции доступа:
| QFont | defaultFont() const |
| void | setDefaultFont(const QFont &font) |
defaultStyleSheet : QString
Стиль таблицы стилей по умолчанию применяется ко всему новому отформатированному в формате HTML тексту, который вставляется в документ, например, с помощью setHtml() или QTextCursor::insertHtml().
Таблица стилей должна соответствовать синтаксису CSS 2.1.
Примечание: Изменение таблицы стилей по умолчанию не оказывает никакого влияния на существующее содержимое документа.
Функции доступа:
| QString | defaultStyleSheet() const |
| void | setDefaultStyleSheet(const QString &sheet) |
См. также Поддерживаемый подмножество HTML.
defaultTextOption : QTextOption
Это свойство содержит опцию текста по умолчанию, которая будет установлена для всех QTextLayout в документе.
При создании QTextBlock устанавливается defaultTextOption на их QTextLayout. Это позволяет устанавливать глобальные свойства для документа, такие как режим перевода слов по умолчанию.
Функции доступа:
| QTextOption | defaultTextOption() const |
| void | setDefaultTextOption(const QTextOption &option) |
documentMargin : qreal
Отступ вокруг документа. По умолчанию 4.
Функции доступа:
| qreal | documentMargin() const |
| void | setDocumentMargin(qreal margin) |
indentWidth : qreal
Возвращает ширину, используемую для отступа списков и блоков текста.
Свойства отступа QTextListFormat и QTextBlockFormat задают кратные этому значению. Значение отступа по умолчанию — 40.
Функции доступа:
| qreal | indentWidth() const |
| void | setIndentWidth(qreal width) |
maximumBlockCount : int
Устанавливает ограничение для блоков в документе.
Устанавливает максимальное количество блоков, которое может содержать документ. Если в документе больше блоков, чем указано в этом свойстве, блоки удаляются с начала документа.
Отрицательное или нулевое значение указывает, что документ может содержать неограниченное количество блоков.
Значение по умолчанию — 0.
Обратите внимание, что установка этого свойства немедленно применит ограничение к содержимому документа.
Установка этого свойства также отключает историю отмены и повтора.
Это свойство не определено в документах с таблицами или фреймами.
Функции доступа:
| int | maximumBlockCount() const |
| void | setMaximumBlockCount(int maximum) |
modified : bool
Это свойство содержит значение, указывающее, был ли документ изменён пользователем.
По умолчанию, это свойство равно false.
Функции доступа:
| bool | isModified() const |
| void | setModified(bool m = true) |
См. также modificationChanged().
pageSize : QSizeF
Это свойство содержит размер страницы, который должен быть использован для вывода документа.
Единицы определяются базовым устройством рисования. Размер измеряется в логических пикселях при рисовании на экране и в пунктах (1/72 дюйма) при рисовании на принтере.
По умолчанию для только что созданного пустого документа это свойство содержит неопределённый размер.
Функции доступа:
| QSizeF | pageSize() const |
| void | setPageSize(const QSizeF &size) |
См. также modificationChanged().
[read-only] size : const QSizeF
Это свойство содержит фактический размер документа. Это эквивалентно documentLayout()->documentSize();
Размер документа может быть изменён либо установкой ширины текста, либо установкой размера всей страницы.
Обратите внимание, что ширина всегда >= pageSize().width().
По умолчанию для только что созданного пустого документа это свойство содержит размер, зависящий от конфигурации.
Функции доступа:
| QSizeF | size() const |
См. также setTextWidth(), setPageSize(), и idealWidth().
textWidth : qreal
Ширина текста задаёт предпочтительную ширину текста в документе. Если текст (или содержимое в целом) шире указанной, он разбивается на несколько строк и увеличивается по вертикали. Если текст не может быть разбит на несколько строк для соответствия заданной ширине текста, он будет больше, и свойства size() и idealWidth() будут отражать это.
Если ширина текста установлена в -1, то текст не будет разбиваться на несколько строк, если это не будет явно принудительно сделано с помощью разрыва строки или нового абзаца.
Значение по умолчанию — -1.
Установка ширины текста также установит высоту страницы в -1, что приведет к непрерывному вертикальному увеличению или уменьшению документа. Если вы хотите, чтобы макет документа разбивал текст на несколько страниц, то необходимо установить свойство pageSize вместо этого.
Функции доступа:
| qreal | textWidth() const |
| void | setTextWidth(qreal width) |
См. также size(), idealWidth() и pageSize().
undoRedoEnabled : bool
Это свойство определяет, включены ли для этого документа отмена/повтор.
По умолчанию значение равно true. При отключении стек отмены очищается, и в него не будут добавляться элементы.
Функции доступа:
| bool | isUndoRedoEnabled() const |
| void | setUndoRedoEnabled(bool enable) |
useDesignMetrics : bool
Это свойство определяет, использует ли документ метрики дизайна шрифтов для повышения точности вывода текста.
Если это свойство установлено в true, для вывода будет использоваться дизайн-метрика. В противном случае будут использоваться метрики устройства рисования, установленные в QAbstractTextDocumentLayout::setPaintDevice().
Использование дизайн-метрики делает ширину макета независимой от сглаживания и округления пикселей. Это позволяет реализовать WYSIWYG-вывод текста, так как ширина гораздо линейнее масштабируется в зависимости от метрик устройства рисования, чем в противном случае.
По умолчанию это свойство равно false.
Функции доступа:
| bool | useDesignMetrics() const |
| void | setUseDesignMetrics(bool b) |
Документация по членам-функциям
QTextDocument::QTextDocument(const QString &text, QObject *parent = nullptr)
Конструирует QTextDocument, содержащий указанный обычный (неформатированный) текст text и заданного parent.
QTextDocument::QTextDocument(QObject *parent = nullptr)
Конструирует пустой QTextDocument со заданным parent.
[signal] void QTextDocument::blockCountChanged(int newBlockCount)
Этот сигнал излучается, когда общее количество блоков текста в документе изменяется. Передаваемое значение newBlockCount — новое общее количество.
[signal] void QTextDocument::contentsChange(int position, int charsRemoved, int charsAdded)
Этот сигнал излучается всякий раз, когда изменяется содержимое документа, например, при вставке или удалении текста, или применении форматирования.
Предоставляется информация о позиции символа в документе, где произошли изменения (position), количестве удаленных символов (charsRemoved) и количестве добавленных символов (charsAdded).
Сигнал излучается до того, как менеджер макета документа будет уведомлен об изменении. Это позволяет реализовать выделение синтаксиса для документа.
См. также QAbstractTextDocumentLayout::documentChanged() и contentsChanged().
[signal] void QTextDocument::contentsChanged()
Этот сигнал излучается всякий раз, когда изменяется содержимое документа, например, при вставке или удалении текста, или применении форматирования.
См. также contentsChange().
[signal] void QTextDocument::cursorPositionChanged(const QTextCursor &cursor)
Этот сигнал излучается всякий раз, когда позиция курсора изменяется из-за операции редактирования. Изменённый курсор передаётся в cursor. Если документ используется с классом QTextEdit, и вам нужен сигнал при перемещении курсора с помощью стрелок, вы можете использовать сигнал cursorPositionChanged() в QTextEdit.
[signal] void QTextDocument::documentLayoutChanged()
Этот сигнал излучается, когда устанавливается новый макет документа.
См. также setDocumentLayout().
[signal] void QTextDocument::modificationChanged(bool changed)
Этот сигнал излучается всякий раз, когда содержимое документа изменяется таким образом, что влияет на состояние модификации. Если changed равно true, документ был изменён; в противном случае — false.
Например, вызов setModified(false) для документа, а затем вставка текста приводит к излучению сигнала. Если вы отменяете эту операцию, возвращая документ в исходное неизменённое состояние, сигнал будет излучен снова.
[slot] void QTextDocument::redo()
Это перегруженная функция.
Повторяет последнюю операцию редактирования документа, если повтор доступен.
[signal] void QTextDocument::redoAvailable(bool available)
Этот сигнал излучается всякий раз, когда операции повтора становятся доступны (available равно true) или недоступны (available равно false).
[slot] void QTextDocument::undo()
Это перегруженная функция.
[signal] void QTextDocument::undoAvailable(bool available)
Этот сигнал излучается всякий раз, когда операции отмены становятся доступными (available равно true) или недоступными (available равно false).
Подробную информацию см. в документации к Qt Undo Framework.
См. также undo() и isUndoRedoEnabled().
[signal] void QTextDocument::undoCommandAdded()
Этот сигнал излучается каждый раз, когда к QTextDocument добавляется новый уровень отмены.
[virtual] QTextDocument::~QTextDocument()
Уничтожает документ.
void QTextDocument::addResource(int type, const QUrl &name, const QVariant &resource)
Добавляет ресурс resource в кэш ресурсов, используя type и name в качестве идентификаторов. type должен быть значением из QTextDocument::ResourceType.
Например, вы можете добавить изображение в качестве ресурса для ссылки на него из документа:
document->addResource(QTextDocument::ImageResource,
QUrl("mydata://image.png"), QVariant(image)); Изображение можно вставить в документ, используя API QTextCursor:
QTextImageFormat imageFormat;
imageFormat.setName("mydata://image.png");
cursor.insertImage(imageFormat); Или вы можете вставить изображения, используя HTML-тег img.
editor->append("<img src=\"mydata://image.png\" />"); void QTextDocument::adjustSize()
Настраивает размер документа до разумного значения.
См. также idealWidth(), textWidth и size.
QList<QTextFormat> QTextDocument::allFormats() const
Возвращает список форматов текста для всех используемых в документе форматов.
int QTextDocument::availableRedoSteps() const
Возвращает количество доступных шагов повтора.
См. также isRedoAvailable().
int QTextDocument::availableUndoSteps() const
Возвращает количество доступных шагов отмены.
См. также isUndoAvailable().
[since 6.0] qreal QTextDocument::baselineOffset() const
Возвращает смещение базовой линии в % в макете документа.
Эта функция была добавлена в Qt 6.0.
См. также setBaselineOffset(), setSubScriptBaseline(), subScriptBaseline(), setSuperScriptBaseline() и superScriptBaseline().
QTextBlock QTextDocument::begin() const
Возвращает первый блок текста документа.
См. также firstBlock().
QChar QTextDocument::characterAt(int pos) const
Возвращает символ в позиции pos или нулевой символ, если позиция находится вне диапазона.
См. также characterCount().
int QTextDocument::characterCount() const
Возвращает количество символов в этом документе.
Примечание: Так как QTextDocument всегда содержит как минимум один QChar::ParagraphSeparator, этот метод вернёт как минимум 1.
См. также blockCount() и characterAt().
[virtual] void QTextDocument::clear()
Очищает документ.
void QTextDocument::clearUndoRedoStacks(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks)
Очищает указанные стеки stacksToClear.
Этот метод очищает все команды в стеке отмены, стеке повтора или в обоих (по умолчанию). Если команды очищаются, посылаются соответствующие сигналы, QTextDocument::undoAvailable() или QTextDocument::redoAvailable().
См. также QTextDocument::undoAvailable() и QTextDocument::redoAvailable().
QTextDocument *QTextDocument::clone(QObject *parent = nullptr) const
Создаёт новый QTextDocument, являющийся копией этого текстового документа. parent — родитель возвращаемого текстового документа.
[virtual protected] QTextObject *QTextDocument::createObject(const QTextFormat &format)
Создаёт и возвращает новый объект документа (a QTextObject) на основе заданного format.
QTextObjects всегда создаются через этот метод, поэтому вам необходимо переопределить его, если вы используете пользовательские текстовые объекты внутри своего документа.
Qt::CursorMoveStyle QTextDocument::defaultCursorMoveStyle() const
Стиль перемещения курсора по умолчанию используется всеми объектами QTextCursor, созданными из документа. По умолчанию Qt::LogicalMoveStyle.
См. также setDefaultCursorMoveStyle().
QFont QTextDocument::defaultFont() const
Возвращает шрифт по умолчанию, который будет использоваться в макете документа.
Примечание: Метод-получатель для свойства defaultFont.
См. также setDefaultFont().
[static, since 6.1] QTextDocument::ResourceProvider QTextDocument::defaultResourceProvider()
Возвращает поставщик ресурсов по умолчанию.
Эта функция была добавлена в Qt 6.1.
См. также setDefaultResourceProvider(), resourceProvider() и loadResource().
QTextOption QTextDocument::defaultTextOption() const
Параметр текста по умолчанию используется для всех объектов QTextLayout в документе. Это позволяет задавать глобальные свойства для документа, такие как режим переноса слов по умолчанию.
Примечание: Метод-получатель для свойства defaultTextOption.
См. также setDefaultTextOption().
QAbstractTextDocumentLayout *QTextDocument::documentLayout() const
Возвращает макет документа для этого документа.
См. также setDocumentLayout().
void QTextDocument::drawContents(QPainter *p, const QRectF &rect = QRectF())
Отображает содержимое документа с помощью p, ограниченное прямоугольником rect. Если rect — пустой прямоугольник (по умолчанию), то документ рисуется без ограничений.
QTextBlock QTextDocument::end() const
Этот метод возвращает блок для проверки конца документа при итерации по нему.
for (QTextBlock it = doc->begin(); it != doc->end(); it = it.next())
std::cout << it.text().toStdString() << "\n"; Возвращаемый блок недействителен и представляет собой блок после последнего блока в документе. Для получения последнего действительного блока документа используйте lastBlock().
См. также lastBlock().
QTextCursor QTextDocument::find(const QString &subString, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
Ищет следующее вхождение строки subString в документе. Поиск начинается с позиции указанного cursor и продолжается вперёд по документу, если не указано иначе в параметрах поиска. Параметр options управляет типом выполняемого поиска.
Возвращает курсор с выделенным совпадением, если subString найден; в противном случае возвращает нулевой курсор.
Если у заданного cursor есть выделение, поиск начинается после выделения; в противном случае он начинается с позиции курсора.
По умолчанию поиск нечувствителен к регистру и может находить текст в любом месте документа.
QTextCursor QTextDocument::find(const QString &subString, int position = 0, QTextDocument::FindFlags options = FindFlags()) const
Это перегруженный метод.
Ищет следующее вхождение строки subString в документе. Поиск начинается с указанной позиции position и продолжается вперёд по документу, если не указано иначе в параметрах поиска. Параметр options управляет типом выполняемого поиска.
Возвращает курсор с выделенным совпадением, если subString найден; в противном случае возвращает нулевой курсор.
Если position равно 0 (по умолчанию), поиск начинается с начала документа; в противном случае он начинается с указанной позиции.
[since 5.5] QTextCursor QTextDocument::find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const
Ищет следующее вхождение, соответствующее заданному регулярному выражению expr, внутри того же абзаца в документе.
Поиск начинается с заданной позиции from и продолжается вперёд по документу, если не указано иначе в параметрах поиска. Параметр options управляет типом выполняемого поиска.
Возвращает курсор с выделенным совпадением, если совпадение найдено; в противном случае возвращает нулевой курсор.
Если позиция from равна 0 (по умолчанию), поиск начинается с начала документа; в противном случае он начинается с указанной позиции.
Эта функция была добавлена в Qt 5.5.
[since 5.5] QTextCursor QTextDocument::find(const QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
Ищет следующее вхождение, соответствующее заданному регулярному выражению expr, внутри того же абзаца в документе.
Поиск начинается с позиции указанного cursor и продолжается вперёд по документу, если не указано иначе в параметрах поиска. Параметр options управляет типом выполняемого поиска.
Возвращает курсор с выделенным совпадением, если совпадение найдено; в противном случае возвращает нулевой курсор.
Если у заданного cursor есть выделение, поиск начинается после выделения; в противном случае он начинается с позиции курсора.
По умолчанию поиск нечувствителен к регистру и может находить текст в любом месте документа.
Эта функция была добавлена в Qt 5.5.
QTextBlock QTextDocument::findBlock(int pos) const
Возвращает абзац, содержащий символ под номером pos.
QTextBlock QTextDocument::findBlockByLineNumber(int lineNumber) const
Возвращает абзац, содержащий указанный номер строки lineNumber.
См. также QTextBlock::firstLineNumber().
QTextBlock QTextDocument::findBlockByNumber(int blockNumber) const
Возвращает абзац с указанным номером blockNumber.
См. также QTextBlock::blockNumber().
QTextBlock QTextDocument::firstBlock() const
Возвращает первый абзац документа.
qreal QTextDocument::idealWidth() const
Возвращает идеальную ширину документа. Идеальная ширина — это фактическая ширина документа без учёта необязательных выравниваний. Она всегда <= size().width().
См. также adjustSize() и textWidth.
bool QTextDocument::isEmpty() const
Возвращает true если документ пуст; в противном случае возвращает false.
bool QTextDocument::isRedoAvailable() const
Возвращает true если действие «Повторить» доступно; в противном случае возвращает false.
См. также isUndoAvailable() и availableRedoSteps().
bool QTextDocument::isUndoAvailable() const
Возвращает true если действие «Отменить» доступно; в противном случае возвращает false.
См. также isRedoAvailable() и availableUndoSteps().
QTextBlock QTextDocument::lastBlock() const
Возвращает последний (действительный) блок текста документа.
int QTextDocument::lineCount() const
Возвращает количество строк в этом документе (если макет это поддерживает). В противном случае, это идентично количеству блоков.
См. также blockCount() и characterCount().
[virtual protected invokable] QVariant QTextDocument::loadResource(int type, const QUrl &name)
Загружает данные указанного типа type из ресурса с заданным именем name.
Эта функция вызывается движком форматирования богатого текста для запроса данных, которые не хранятся напрямую в QTextDocument, но все же связаны с ним. Например, изображения косвенно ссылаются на атрибут имени объекта QTextImageFormat.
При вызове Qt, type является одним из значений QTextDocument::ResourceType.
Если QTextDocument является дочерним объектом QObject, который имеет вызываемый метод loadResource, такой как QTextEdit, QTextBrowser или QTextDocument сам по себе, то реализация по умолчанию пытается извлечь данные из родителя.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также QTextDocument::ResourceProvider.
void QTextDocument::markContentsDirty(int position, int length)
Помечает указанные position и length участки содержимого как «грязные», уведомляя документ о необходимости повторного вывода.
QString QTextDocument::metaInformation(QTextDocument::MetaInformation info) const
Возвращает метаинформацию о документе заданного типа info.
См. также setMetaInformation().
QTextObject *QTextDocument::object(int objectIndex) const
Возвращает текстовый объект, связанный с заданным objectIndex.
QTextObject *QTextDocument::objectForFormat(const QTextFormat &f) const
Возвращает текстовый объект, связанный с форматом f.
int QTextDocument::pageCount() const
Возвращает количество страниц в этом документе.
void QTextDocument::print(QPagedPaintDevice *printer) const
Печатает документ на указанный printer. QPagedPaintDevice должен быть настроен перед использованием с этой функцией.
Это всего лишь удобный метод для печати всего документа на принтер.
Если документ уже разбит на страницы по заданной высоте в свойстве pageSize(), он печатается как есть.
Если документ не разбит на страницы, как, например, документ, используемый в QTextEdit, то создаётся временная копия документа, и копия разбивается на несколько страниц в соответствии с размером paperRect() устройства рисования. По умолчанию вокруг содержимого документа устанавливается отступ в 2 см. Кроме того, номер текущей страницы печатается внизу каждой страницы.
См. также QTextEdit::print().
void QTextDocument::redo(QTextCursor *cursor)
Повторяет последнее действие редактирования в документе, если «Повторить» доступно.
Предоставленный cursor позиционируется в конце места, где было выполнено повторное действие.
QVariant QTextDocument::resource(int type, const QUrl &name) const
Возвращает данные указанного типа type из ресурса с заданным именем name.
Эта функция вызывается движком форматирования богатого текста для запроса данных, которые не хранятся напрямую в QTextDocument, но все же связаны с ним. Например, изображения косвенно ссылаются на атрибут имени объекта QTextImageFormat.
Ресурсы кэшируются внутри документа. Если ресурс не найден в кэше, вызывается loadResource для попытки загрузки ресурса. loadResource должен затем использовать addResource для добавления ресурса в кэш.
Если loadResource не загружает ресурс, то вызывается resourceProvider, а затем defaultResourceProvider, если они установлены. Обратите внимание, что результат от провайдера не будет автоматически добавлен в кэш.
См. также QTextDocument::ResourceType и resourceProvider().
[since 6.1] QTextDocument::ResourceProvider QTextDocument::resourceProvider() const
Возвращает провайдера ресурсов для этого документа.
Эта функция была добавлена в Qt 6.1.
См. также setResourceProvider(), defaultResourceProvider(), и loadResource().
int QTextDocument::revision() const
Возвращает ревизию документа (если включена возможность отмены).
Ревизия гарантированно увеличивается, когда документ, который не был изменён, редактируется.
См. также QTextBlock::revision() и isModified().
QTextFrame *QTextDocument::rootFrame() const
Возвращает корневую рамку документа.
[since 6.0] void QTextDocument::setBaselineOffset(qreal baseline)
Устанавливает базовую линию в процентах от высоты шрифта, используемую в макете документа, на baseline. Значение по умолчанию — 0. Положительное значение смещает текст вверх на соответствующий процент; отрицательное значение — вниз.
Эта функция была добавлена в Qt 6.0.
См. также baselineOffset(), setSubScriptBaseline(), subScriptBaseline(), setSuperScriptBaseline(), и superScriptBaseline().
void QTextDocument::setDefaultCursorMoveStyle(Qt::CursorMoveStyle style)
Устанавливает стиль перемещения курсора по умолчанию на заданный style.
См. также defaultCursorMoveStyle().
void QTextDocument::setDefaultFont(const QFont &font)
Устанавливает шрифт по умолчанию для использования в макете документа.
Примечание: Функция-сеттер для свойства defaultFont.
См. также defaultFont().
[static, since 6.1] void QTextDocument::setDefaultResourceProvider(const QTextDocument::ResourceProvider &provider)
Устанавливает провайдера ресурсов по умолчанию на provider.
Провайдер по умолчанию будет использоваться всеми QTextDocuments, которые не имеют явного провайдера.
Эта функция была добавлена в Qt 6.1.
См. также defaultResourceProvider(), setResourceProvider(), и loadResource().
void QTextDocument::setDefaultTextOption(const QTextOption &option)
Устанавливает опцию текста по умолчанию на option.
Примечание: Функция-сеттер для свойства defaultTextOption.
См. также defaultTextOption().
void QTextDocument::setDocumentLayout(QAbstractTextDocumentLayout *layout)
Устанавливает для документа заданный layout. Предыдущий макет удаляется.
См. также documentLayoutChanged().
void QTextDocument::setHtml(const QString &html)
Заменяет всё содержимое документа заданным HTML-форматированным текстом в строке html. История отмены/повторной операции сбрасывается при вызове этой функции.
HTML-форматирование соблюдается по возможности; например, "<b>жирный</b> текст" создаст текст, где первое слово будет жирным: "жирный текст".
Примечание: Ответственность за правильное декодирование текста при создании QString, содержащей HTML, и передаче его в setHtml(), лежит на вызывающей стороне.
См. также setPlainText() и Поддержка HTML-подмножества.
void QTextDocument::setIndentWidth(qreal width)
Устанавливает width, используемый для отступа списков и блоков текста.
Свойства отступа QTextListFormat и QTextBlockFormat указывают кратные этому значению. Значение по умолчанию для ширины отступа равно 40.
Примечание: Функция-сеттер для свойства indentWidth.
См. также indentWidth().
[since 5.14] void QTextDocument::setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)
Заменяет всё содержимое документа заданным Markdown-форматированным текстом в строке markdown с поддержкой заданных features. По умолчанию включены все поддерживаемые функции Markdown в стиле GitHub; передайте MarkdownDialectCommonMark для более простого разбора.
Markdown-форматирование соблюдается по возможности; например, "*жирный* текст" создаст текст, где первое слово будет выделено курсивом.
Разбор HTML, включённого в строку markdown, обрабатывается так же, как в setHtml; однако, Markdown-форматирование внутри HTML-блоков не поддерживается.
Некоторые функции парсера можно включить или выключить с помощью аргумента features:
| Константа | Описание |
|---|---|
MarkdownNoHTML |
Любые HTML-теги в Markdown-тексте будут удалены |
MarkdownDialectCommonMark |
Парсер поддерживает только функции, стандартизированные CommonMark |
MarkdownDialectGitHub |
Парсер поддерживает диалект GitHub |
По умолчанию MarkdownDialectGitHub.
История отмены/повторной операции сбрасывается при вызове этой функции.
Эта функция была добавлена в Qt 5.14.
void QTextDocument::setMetaInformation(QTextDocument::MetaInformation info, const QString &string)
Устанавливает метаинформацию документа типа info на заданную строку string.
См. также metaInformation().
void QTextDocument::setPlainText(const QString &text)
Заменяет всё содержимое документа заданным простым текстом text. История отмены/повторной операции сбрасывается при вызове этой функции.
См. также setHtml().
[since 6.1] void QTextDocument::setResourceProvider(const QTextDocument::ResourceProvider &provider)
Устанавливает поставщика ресурсов для текстового документа в provider.
Эта функция была добавлена в Qt 6.1.
См. также resourceProvider() и loadResource().
[since 6.0] void QTextDocument::setSubScriptBaseline(qreal baseline)
Устанавливает базовую линию нижнего индекса по умолчанию как процент от высоты шрифта, используемую в макете документа, на baseline. Значение по умолчанию составляет 16,67% (1/6 высоты).
Эта функция была добавлена в Qt 6.0.
См. также subScriptBaseline(), setSuperScriptBaseline(), superScriptBaseline(), setBaselineOffset(), и baselineOffset().
[since 6.0] void QTextDocument::setSuperScriptBaseline(qreal baseline)
Устанавливает базовую линию верхнего индекса по умолчанию как процент от высоты шрифта, используемую в макете документа, на baseline. Значение по умолчанию составляет 50% (1/2 высоты).
Эта функция была добавлена в Qt 6.0.
См. также superScriptBaseline(), setSubScriptBaseline(), subScriptBaseline(), setBaselineOffset(), и baselineOffset().
[since 6.0] qreal QTextDocument::subScriptBaseline() const
Возвращает базовую линию нижнего индекса как процент от высоты шрифта, используемую в макете документа.
Эта функция была добавлена в Qt 6.0.
См. также setSubScriptBaseline(), setSuperScriptBaseline(), superScriptBaseline(), setBaselineOffset(), и baselineOffset().
[since 6.0] qreal QTextDocument::superScriptBaseline() const
Возвращает базовую линию верхнего индекса как процент от высоты шрифта, используемую в макете документа.
Эта функция была добавлена в Qt 6.0.
См. также setSuperScriptBaseline(), setSubScriptBaseline(), subScriptBaseline(), setBaselineOffset(), и baselineOffset().
QString QTextDocument::toHtml() const
Возвращает строку, содержащую HTML-представление документа.
Содержимое документа задаёт кодировку UTF-8. Если вы впоследствии преобразуете возвращённую строку html в массив байтов для передачи по сети или сохранения в файл, используйте QString::toUtf8() для преобразования строки в QByteArray.
См. также Поддержка HTML-подмножества.
[since 5.14] QString QTextDocument::toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const
Возвращает строку, содержащую Markdown-представление документа с заданными features, или пустую строку, если запись не удалась по какой-либо причине.
Эта функция была добавлена в Qt 5.14.
См. также setMarkdown.
QString QTextDocument::toPlainText() const
Возвращает содержимое документа в виде простого текста. Если вам нужна информация о форматировании, используйте QTextCursor.
Эта функция возвращает то же, что и toRawText(), но заменит некоторые символы Unicode на ASCII-аналоги. В частности, неразрывный пробел (U+00A0) заменяется обычным пробелом (U+0020), а разделители абзацев (U+2029) и строк (U+2028) заменяются символом новой строки (U+000A). Если вам нужно точное содержимое документа, используйте toRawText().
Примечание: Встроенные объекты, такие как изображения, представлены символом Unicode U+FFFC (СИМВОЛ ЗАМЕНЫ ОБЪЕКТА).
См. также toHtml().
[since 5.9] QString QTextDocument::toRawText() const
Возвращает содержимое документа в виде простого текста без какой-либо информации о форматировании. Если вам нужна информация о форматировании, используйте QTextCursor вместо этого.
Эта функция была добавлена в Qt 5.9.
См. также toPlainText().
void QTextDocument::undo(QTextCursor *cursor)
Отменяет последнее действие редактирования в документе, если отмена доступна. Предоставленный cursor позиционируется в конце местоположения, где было отменено действие редактирования.
См. документацию Qt Undo Framework для получения подробных сведений.
См. также undoAvailable() и isUndoRedoEnabled().
END_OF_DOCUMENT_MARKER
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtextdocument.html