Класс 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 } |
| Перечисление | 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 |
| 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 | 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() |
Сигналы
| 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() |
Защищенные функции
| virtual QTextObject * | createObject(const QTextFormat &format) |
| virtual QVariant | loadResource(int type, const QUrl &name) |
Подробное описание
QTextDocument — это контейнер для структурированных документов с форматированным текстом, поддерживающий стилизованный текст и различные типы элементов документа, такие как списки, таблицы, рамки и изображения. Их можно создавать для использования в QTextEdit или использовать независимо.
Каждый элемент документа описывается соответствующим объектом форматирования. Каждый объект форматирования рассматривается QTextDocument как уникальный объект и может быть передан в objectForFormat() для получения элемента документа, к которому он применяется.
QTextDocument можно редактировать программно с помощью QTextCursor, а его содержимое можно изучить, пройдя по структуре документа. Вся структура документа хранится в виде иерархии элементов документа под корневой рамкой, которая находится с помощью функции rootFrame(). В качестве альтернативы, если вы хотите только итерировать текстовое содержимое документа, вы можете использовать begin(), end() и findBlock() для получения текстовых блоков, которые вы можете исследовать и итерировать.
Макет документа определяется documentLayout; вы можете создать свой собственный подкласс QAbstractTextDocumentLayout и установить его с помощью setDocumentLayout(), если хотите использовать свою собственную логику макета. Заголовок документа и другую метаинформацию можно получить, вызвав функцию metaInformation(). Для документов, которые доступны пользователям через класс QTextEdit, заголовок документа также доступен через функцию QTextEdit::documentTitle().
Удобные функции toPlainText() и toHtml() позволяют получить содержимое документа в виде простого текста и HTML. Текст документа можно искать с помощью функций find().
Отмену/повтор операций, выполненных над документом, можно контролировать с помощью функции setUndoRedoEnabled(). Систему отмены/повтора можно контролировать с помощью виджета редактора через слоты undo() и redo(); документ также предоставляет сигналы contentsChanged(), undoAvailable() и redoAvailable(), которые информируют подключенные виджеты редактора о состоянии системы отмены/повтора. Вот операции отмены/повтора QTextDocument:
- Вставка или удаление символов. Последовательность вставок или удалений в пределах одного текстового блока рассматривается как одна операция отмены/повтора.
- Вставка или удаление текстовых блоков. Последовательности вставки или удаления в одной операции (например, при выделении и последующем удалении текста) рассматриваются как одна операция отмены/повтора.
- Изменение формата символов текста.
- Изменение формата текстовых блоков.
- Изменение формата группы текстовых блоков.
См. также QTextCursor, QTextEdit, Обработка форматированного текста и Пример объекта текста.
Документация типов членов
enum QTextDocument::FindFlagflags QTextDocument::FindFlags
Этот перечисление описывает параметры, доступные для функции поиска QTextDocument. Параметры можно объединять по оператору ИЛИ из следующего списка:
| Константа | Значение | Описание |
|---|---|---|
QTextDocument::FindBackward |
0x00001 |
Произвести поиск в обратном направлении вместо прямого. |
QTextDocument::FindCaseSensitively |
0x00002 |
По умолчанию поиск не учитывает регистр. Указание этого параметра изменяет поведение на поиск, учитывающий регистр. |
QTextDocument::FindWholeWords |
0x00004 |
Заставляет поиск соответствовать только целым словам. |
Тип FindFlags является псевдонимом для QFlags<FindFlag>. Он хранит результат объединения значений FindFlag по оператору ИЛИ.
enum QTextDocument::MetaInformation
Это перечисление описывает различные типы метаданных, которые могут быть добавлены в документ.
| Константа | Значение | Описание |
|---|---|---|
QTextDocument::DocumentTitle |
0 |
Заголовок документа. |
QTextDocument::DocumentUrl |
1 |
URL документа. Функция loadResource() использует этот URL в качестве базового при загрузке относительных ресурсов. |
См. также metaInformation() и setMetaInformation().
enum 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().
enum 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)
Этот сигнал излучается всякий раз, когда содержимое документа изменяется; например, при вставке или удалении текста или при применении форматирования.
Предоставляется информация о позиции символа в документе, где произошла смена, количестве удаленных символов (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().
QTextOption QTextDocument::defaultTextOption() const
Опция текста по умолчанию используется для всех объектов QTextLayout в документе. Это позволяет задавать глобальные свойства для документа, такие как режим перевода слов по умолчанию.
Примечание: Функция-получатель для свойства defaultTextOption.
См. также setDefaultTextOption().
QAbstractTextDocumentLayout *QTextDocument::documentLayout() const
Возвращает макет документа для этого документа.
См. также setDocumentLayout().
void QTextDocument::drawContents(QPainter *p, const QRectF &rect = QRectF())
Рисует содержимое документа с помощью painter 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] 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.
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, чтобы добавить ресурс в кэш.
См. также QTextDocument::ResourceType.
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().
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().
END_OF_DOCUMENT_MARKER
[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.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(), но заменяет некоторые символы Юникода на альтернативные ASCII. В частности, неразрывный пробел (U+00A0) заменяется обычным пробелом (U+0020), а оба разделителя абзацев (U+2029) и строк (U+2028) заменяются переводом строки (U+000A). Если вам нужно точное содержимое документа, используйте toRawText() вместо этого.
Примечание: Встроенные объекты, такие как изображения, представлены значением Юникода 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().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qtextdocument.html