Класс 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(). Системой отмены/повторa можно управлять с помощью виджета редактора через слоты undo() и redo(); документ также предоставляет сигналы contentsChanged(), undoAvailable() и redoAvailable(), которые информируют подключённые виджеты редакторов о состоянии системы отмены/повтора.
- Вставка или удаление символов. Последовательность вставок или удалений в одном и том же блоке текста рассматривается как одна операция отмены/повтора.
- Вставка или удаление блоков текста. Последовательности вставок или удалений в одной операции (например, выделение и удаление текста) рассматриваются как одна операция отмены/повтора.
- Изменение формата символов текста.
- Изменение формата блоков текста.
- Изменение формата группы блоков текста.
См. также QTextCursor, QTextEdit, Обработка форматированного текста и Пример объекта текста.
Документация типов членов
перечисление QTextDocument::FindFlagфлаги 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)
Создаёт и возвращает новый объект документа (объект 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().
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)
Заменяет все содержимое документа заданным простым текстом. История отмены/повтора сбрасывается при вызове этой функции.
См. также setHtml().
void QTextDocument::setResourceProvider(const QTextDocument::ResourceProvider &provider)
Устанавливает поставщика ресурсов для текстового документа в provider.
Эта функция была добавлена в Qt 6.1.
См. также resourceProvider() и loadResource().
void QTextDocument::setSubScriptBaseline(qreal baseline)
Устанавливает базовую линию нижнего индекса по умолчанию в качестве % от высоты шрифта, используемого в макете документа, в baseline. Значение по умолчанию составляет 16,67% (1/6 высоты).
Эта функция была добавлена в Qt 6.0.
См. также subScriptBaseline(), setSuperScriptBaseline(), superScriptBaseline(), setBaselineOffset(), и baselineOffset().
void QTextDocument::setSuperScriptBaseline(qreal baseline)
Устанавливает базовую линию верхнего индекса по умолчанию в качестве % от высоты шрифта, используемого в макете документа, в baseline. Значение по умолчанию составляет 50% (1/2 высоты).
Эта функция была добавлена в Qt 6.0.
См. также superScriptBaseline(), setSubScriptBaseline(), subScriptBaseline(), setBaselineOffset(), и baselineOffset().
qreal QTextDocument::subScriptBaseline() const
Возвращает базовую линию нижнего индекса в % от высоты шрифта, используемого в макете документа.
Эта функция была добавлена в Qt 6.0.
См. также setSubScriptBaseline(), setSuperScriptBaseline(), superScriptBaseline(), setBaselineOffset(), и baselineOffset().
qreal QTextDocument::superScriptBaseline() const
Возвращает базовую линию верхнего индекса в % от высоты шрифта, используемого в макете документа.
Эта функция была добавлена в Qt 6.0.
См. также setSuperScriptBaseline(), setSubScriptBaseline(), subScriptBaseline(), setBaselineOffset(), и baselineOffset().
QString QTextDocument::toHtml() const
Возвращает строку, содержащую HTML-представление документа.
Содержимое документа задаёт кодировку UTF-8. Если вы впоследствии конвертируете возвращённую строку html в массив байтов для передачи по сети или сохранения на диск, используйте QString::toUtf8(), чтобы преобразовать строку в QByteArray.
См. также Поддержка HTML-подмножества.
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().
QString QTextDocument::toRawText() const
Возвращает исходный текст, содержащийся в документе, без какой-либо информации о форматировании. Если вам нужна информация о форматировании, используйте QTextCursor вместо этого.
Эта функция была добавлена в Qt 5.9.
См. также toPlainText().
void QTextDocument::undo(QTextCursor *cursor)
Отменяет последнее действие редактирования в документе, если доступна отмена. Указанный cursor размещается в конце расположения, где было отменено действие редактирования.
См. документацию Qt-фреймворк для отмены/повтора для получения подробной информации.
См. также undoAvailable() и isUndoRedoEnabled().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtextdocument.html