Класс QTextDocument
Класс QTextDocument хранит форматированный текст. Подробнее...
| Заголовок: | #include <QTextDocument> |
| 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() |
| QVector<QTextFormat> | allFormats() const |
| int | availableRedoSteps() const |
| int | availableUndoSteps() const |
| QUrl | baseUrl() 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 QRegExp &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const |
| QTextCursor | find(const QRegExp &expr, const QTextCursor &cursor, 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 | 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 | setTextWidth(qreal width) |
| void | setUndoRedoEnabled(bool enable) |
| void | setUseDesignMetrics(bool b) |
| QSizeF | size() const |
| qreal | textWidth() const |
| QString | toHtml(const QByteArray &encoding = QByteArray()) const |
| QString | toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const |
| QString | toPlainText() const |
| QString | toRawText() const |
| void | undo(QTextCursor *cursor) |
| bool | useDesignMetrics() const |
Открытые слоты
| 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 или использовать независимо.
Каждый элемент документа описывается связанным объектом формата. Каждый объект формата обрабатывается 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(), которые информируют подключенные виджеты редактора о состоянии системы отмены/повтора. Вот операции отмены/повтора QTextDocument:
- Вставка или удаление символов. Последовательность вставок или удалений в пределах одного текстового блока рассматривается как единая операция отмены/повтора.
- Вставка или удаление текстовых блоков. Последовательности вставок или удалений в рамках одной операции (например, выделение и удаление текста) рассматриваются как единая операция отмены/повтора.
- Изменения формата символов текста.
- Изменения формата текстовых блоков.
- Изменения формата группы текстовых блоков.
См. также QTextCursor, QTextEdit, Обработка форматированного текста и Пример объекта текста.
Документация по типам членов
перечисление QTextDocument::FindFlagflags QTextDocument::FindFlags
Это перечисление описывает доступные параметры функции поиска QTextDocument. Параметры могут быть объединены с помощью операции ИЛИ из следующего списка:
| Постоянная | Значение | Описание |
|---|---|---|
QTextDocument::FindBackward |
0x00001 |
Искать в обратном, а не прямом порядке. |
QTextDocument::FindCaseSensitively |
0x00002 |
По умолчанию поиск не учитывает регистр. Указание этого параметра изменяет поведение на чувствительный к регистру поиск. |
QTextDocument::FindWholeWords |
0x00004 |
Обеспечивает соответствие только целым словам. |
Тип FindFlags — это typedef для 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 |
Ресурс содержит данные изображения. В настоящее время поддерживаются типы данных QVariant::Pixmap и QVariant::Image. Если соответствующий вариант имеет тип QVariant::ByteArray, Qt пытается загрузить изображение с помощью QImage::loadFromData. QVariant::Icon в настоящее время не поддерживается. Иконка должна быть преобразована в один из поддерживаемых типов, например, с помощью 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 |
Оба стека: отмены и повтора. |
Документация свойств
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) |
blockCount : const int
Возвращает количество текстовых блоков в документе.
Значение этого свойства не определено в документах с таблицами или фреймами.
По умолчанию, если определено, это свойство содержит значение 1.
Это свойство было введено в Qt 4.2.
Функции доступа:
| int | blockCount() const |
См. также lineCount() и characterCount().
defaultFont : QFont
Это свойство содержит шрифт по умолчанию, используемый для отображения текста документа.
Функции доступа:
| QFont | defaultFont() const |
| void | setDefaultFont(const QFont &font) |
defaultStyleSheet : QString
Стиль таблицы стилей по умолчанию применяется ко всему новому форматированному HTML-тексту, вставляемому в документ, например, с помощью setHtml() или QTextCursor::insertHtml().
Таблица стилей должна соответствовать синтаксису CSS 2.1.
Примечание: Изменение таблицы стилей по умолчанию не оказывает никакого влияния на существующее содержимое документа.
Это свойство было введено в Qt 4.2.
Функции доступа:
| 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.
Это свойство было введено в Qt 4.5.
Функции доступа:
| qreal | documentMargin() const |
| void | setDocumentMargin(qreal margin) |
indentWidth : qreal
Возвращает ширину, используемую для отступа списков и блоков текста.
Свойства отступа QTextListFormat и QTextBlockFormat указывают кратные этому значению. Значение отступа по умолчанию составляет 40.
Это свойство было введено в Qt 4.4.
Функции доступа:
| qreal | indentWidth() const |
| void | setIndentWidth(qreal width) |
maximumBlockCount : int
Определяет ограничение для блоков в документе.
Устанавливает максимальное количество блоков, которое может содержать документ. Если в документе больше блоков, чем указано в этом свойстве, блоки удаляются с начала документа.
Отрицательное или нулевое значение указывает, что документ может содержать неограниченное количество блоков.
Значение по умолчанию равно 0.
Обратите внимание, что установка этого свойства немедленно применит ограничение к содержимому документа.
Установка этого свойства также отключает историю отмены/повторной отмены.
Это свойство не определено в документах с таблицами или фреймами.
Это свойство было введено в Qt 4.2.
Функции доступа:
| 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().
size : const QSizeF
Возвращает фактический размер документа. Это эквивалентно documentLayout()->documentSize();
Размер документа можно изменить, либо задав ширину текста, либо задав размер всей страницы.
Обратите внимание, что ширина всегда >= pageSize().width().
По умолчанию для только что созданного пустого документа это свойство содержит зависящий от конфигурации размер.
Это свойство было введено в Qt 4.2.
Функции доступа:
| QSizeF | size() const |
См. также setTextWidth(), setPageSize(), и idealWidth().
textWidth : qreal
Ширина текста задаёт предпочтительную ширину текста в документе. Если текст (или содержимое вообще) шире заданной ширины, он разбивается на несколько строк и увеличивается по вертикали. Если текст не может быть разбит на несколько строк, чтобы уместиться в заданную ширину текста, он станет больше, и свойства size() и idealWidth() это отразят.
Если ширина текста установлена в -1, текст не будет разбиваться на несколько строк, если только это не будет сделано явно с помощью явного разрыва строки или нового абзаца.
Значение по умолчанию — -1.
Установка ширины текста также установит высоту страницы в -1, что приведет к тому, что документ будет увеличиваться или уменьшаться в вертикальном направлении непрерывным образом. Если вы хотите, чтобы макет документа разбивал текст на несколько страниц, вам нужно установить свойство pageSize вместо этого.
Это свойство было введено в Qt 4.2.
Функции доступа:
| 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.
Это свойство было введено в Qt 4.1.
Функции доступа:
| 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 — новое общее количество.
Эта функция была введена в Qt 4.3.
[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()
Этот сигнал излучается, когда устанавливается новый макет документа.
Эта функция была введена в Qt 4.4.
См. также setDocumentLayout().
[signal] void QTextDocument::modificationChanged(bool changed)
Этот сигнал излучается всякий раз, когда содержимое документа изменяется таким образом, что влияет на состояние модификации. Если changed равно true, документ был изменен; в противном случае — false.
Например, вызов setModified(false) для документа, а затем вставка текста вызывает излучение сигнала. Если вы отменяете эту операцию, что приводит к возвращению документа в исходное немодифицированное состояние, сигнал снова будет излучен.
[slot] void QTextDocument::redo()
Это перегруженная функция.
Повторяет последнюю операцию редактирования в документе, если 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 добавляется новый уровень отмены.
Эта функция была введена в Qt 4.4.
[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()
Настраивает размер документа на разумный размер.
Эта функция была введена в Qt 4.2.
См. также idealWidth(), textWidth и size.
QVector<QTextFormat> QTextDocument::allFormats() const
Возвращает вектор текстовых форматов для всех форматов, используемых в документе.
int QTextDocument::availableRedoSteps() const
Возвращает количество доступных шагов повторного выполнения.
Эта функция была введена в Qt 4.6.
См. также isRedoAvailable().
int QTextDocument::availableUndoSteps() const
Возвращает количество доступных шагов отмены.
Эта функция была введена в Qt 4.6.
См. также isUndoAvailable().
QTextBlock QTextDocument::begin() const
Возвращает первый блок текста документа.
См. также firstBlock().
QChar QTextDocument::characterAt(int pos) const
Возвращает символ в позиции pos или нулевой символ, если позиция находится вне диапазона.
Эта функция была введена в Qt 4.5.
См. также characterCount().
int QTextDocument::characterCount() const
Возвращает количество символов в данном документе.
Примечание: Так как QTextDocument всегда содержит как минимум один символ QChar::ParagraphSeparator, этот метод вернёт как минимум 1.
Эта функция была введена в Qt 4.5.
См. также blockCount() и characterAt().
[virtual] void QTextDocument::clear()
Очищает документ.
void QTextDocument::clearUndoRedoStacks(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks)
Очищает стеки, указанные в stacksToClear.
Этот метод очищает все команды в стеке отмены, стеке повтора или обоих стеков (по умолчанию). Если команды очищены, генерируются соответствующие сигналы, QTextDocument::undoAvailable() или QTextDocument::redoAvailable().
Эта функция была введена в Qt 4.7.
См. также 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.
Эта функция была введена в Qt 4.8.
См. также setDefaultCursorMoveStyle().
QFont QTextDocument::defaultFont() const
Возвращает шрифт по умолчанию, используемый в макете документа.
Примечание: Функция-геттер для свойства defaultFont.
См. также setDefaultFont().
QTextOption QTextDocument::defaultTextOption() const
Опция текста по умолчанию используется для всех объектов QTextLayout в документе. Это позволяет устанавливать глобальные свойства документа, такие как режим перевода слов по умолчанию.
Эта функция была введена в Qt 4.3.
Примечание: Функция-геттер для свойства defaultTextOption.
См. также setDefaultTextOption().
QAbstractTextDocumentLayout *QTextDocument::documentLayout() const
Возвращает макет документа для этого документа.
См. также setDocumentLayout().
void QTextDocument::drawContents(QPainter *p, const QRectF &rect = QRectF())
Рисует содержимое документа с помощью p, ограниченного областью rect. Если rect — пустой прямоугольник (по умолчанию), документ рисуется без ограничений.
Эта функция была введена в Qt 4.2.
QTextBlock QTextDocument::end() const
Эта функция возвращает блок для проверки конца документа при итерации по нему.
Возвращаемый блок недействителен и представляет блок после последнего блока в документе. Вы можете использовать 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 (по умолчанию), поиск начинается с начала документа; в противном случае поиск начинается с указанной позиции.
QTextCursor QTextDocument::find(const QRegExp &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const
Это перегруженная функция.
Ищет следующее вхождение, соответствующее заданному регулярному выражению expr, в рамках одного абзаца документа.
Поиск начинается с заданной позиции from и продолжается вперёд по документу, если не указано иначе в опциях поиска. Опции options управляют типом производимого поиска. Опция FindCaseSensitively игнорируется для этой перегрузки, используйте QRegExp::caseSensitivity вместо этого.
Возвращает курсор с выделенным совпадением, если совпадение найдено; в противном случае возвращает нулевой курсор.
Если from равно 0 (по умолчанию), поиск начинается с начала документа; в противном случае поиск начинается с указанной позиции.
QTextCursor QTextDocument::find(const QRegExp &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
Это перегруженная функция.
Ищет следующее вхождение, соответствующее заданному регулярному выражению expr, в рамках одного абзаца документа.
Поиск начинается с позиции заданного cursor и продолжается вперёд по документу, если не указано иначе в опциях поиска. Опции options управляют типом производимого поиска. Опция FindCaseSensitively игнорируется для этой перегрузки, используйте QRegExp::caseSensitivity вместо этого.
Возвращает курсор с выделенным совпадением, если совпадение найдено; в противном случае возвращает нулевой курсор.
Если у заданного cursor есть выделение, поиск начинается после выделения; в противном случае поиск начинается с позиции курсора.
По умолчанию поиск регистронезависимый и может находить текст в любом месте документа.
QTextCursor QTextDocument::find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const
Ищет следующее вхождение, соответствующее заданному регулярному выражению expr, в рамках одного абзаца документа.
Поиск начинается с заданной позиции from и продолжается вперёд по документу, если не указано иначе в опциях поиска. Опции options управляют типом производимого поиска.
Возвращает курсор с выделенным совпадением, если совпадение найдено; в противном случае возвращает нулевой курсор.
Если from равно 0 (по умолчанию), поиск начинается с начала документа; в противном случае поиск начинается с указанной позиции.
Эта функция была введена в Qt 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.
Эта функция была добавлена в Qt 4.5.
См. также QTextBlock::firstLineNumber().
QTextBlock QTextDocument::findBlockByNumber(int blockNumber) const
Возвращает абзац с заданным номером blockNumber.
Эта функция была добавлена в Qt 4.4.
См. также QTextBlock::blockNumber().
QTextBlock QTextDocument::firstBlock() const
Возвращает первый абзац документа.
Эта функция была добавлена в Qt 4.4.
qreal QTextDocument::idealWidth() const
Возвращает идеальную ширину текстового документа. Идеальная ширина — это фактически используемая ширина документа без учета необязательных выравниваний. Она всегда меньше или равна size().width().
Эта функция была добавлена в Qt 4.2.
См. также 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
Возвращает последний (действительный) абзац документа.
Эта функция была добавлена в Qt 4.4.
int QTextDocument::lineCount() const
Возвращает количество строк в документе (если макет поддерживает это). В противном случае, это совпадает с количеством абзацев.
Эта функция была добавлена в Qt 4.5.
См. также 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, то создаётся временная копия документа, и копия разбивается на несколько страниц в соответствии с размером paint device's paperRect(). По умолчанию устанавливается отступ в 2 см вокруг содержимого документа. Кроме того, текущий номер страницы печатается в нижней части каждой страницы.
См. также QTextEdit::print().
void QTextDocument::redo(QTextCursor *cursor)
Выполняет повтор последнего редактирования документа, если возможность повторного выполнения действий есть.
Предоставленный курсор cursor устанавливается в конец места, где операция редактирования была повторно выполнена.
Эта функция была добавлена в Qt 4.2.
QVariant QTextDocument::resource(int type, const QUrl &name) const
Возвращает данные указанного типа type из ресурса с данным именем name.
Эта функция вызывается движком форматированного текста для запроса данных, которые не хранятся напрямую в QTextDocument, но всё же связаны с ним. Например, изображения ссылаются косвенно на атрибут имени объекта QTextImageFormat.
Ресурсы кешируются внутри документа. Если ресурс не найден в кэше, вызывается loadResource для попытки загрузки ресурса. loadResource должен затем использовать addResource для добавления ресурса в кэш.
См. также QTextDocument::ResourceType.
int QTextDocument::revision() const
Возвращает номер редакции документа (если включена возможность отмены действий).
Номер редакции гарантированно увеличивается при редактировании документа, который не был изменён.
Эта функция была добавлена в Qt 4.4.
См. также QTextBlock::revision() и isModified().
QTextFrame *QTextDocument::rootFrame() const
Возвращает корневую область документа.
void QTextDocument::setDefaultCursorMoveStyle(Qt::CursorMoveStyle style)
Устанавливает стиль перемещения курсора по умолчанию на заданный style.
Эта функция была добавлена в Qt 4.8.
См. также defaultCursorMoveStyle().
void QTextDocument::setDefaultFont(const QFont &font)
Устанавливает шрифт по умолчанию для использования в макете документа.
Примечание: Функция-сеттер для свойства defaultFont.
См. также defaultFont().
void QTextDocument::setDefaultTextOption(const QTextOption &option)
Устанавливает стандартный параметр текста на option.
Эта функция была добавлена в Qt 4.3.
Примечание: Функция-сеттер для свойства 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.
Эта функция была добавлена в Qt 4.4.
Примечание: Функция-сеттер для свойства 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)
Заменяет всё содержимое документа заданным обычным text. История отмены/повтор действия сбрасывается при вызове этой функции.
См. также setHtml().
QString QTextDocument::toHtml(const QByteArray &encoding = QByteArray()) const
Возвращает строку, содержащую HTML-представление документа.
Параметр encoding задаёт значение для атрибута charset в заголовке html. Например, если указан 'utf-8', то начало сгенерированного html будет выглядеть так:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>...
Если кодировка не указана, такая метаинформация не генерируется.
Если вы позже преобразуете возвращенную строку html в массив байтов для передачи по сети или сохранения на диск, вы должны указать кодировку, которую вы будете использовать для преобразования в массив байтов здесь.
См. также Поддерживаемый подмножество 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-фреймворк отмены/повтор для получения подробностей.
Эта функция была добавлена в Qt 4.2.
См. также undoAvailable() и isUndoRedoEnabled().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qtextdocument.html