Spec-Zone.ru › Qt 6.0

Класс 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 }

Свойства

  • baseUrl : QUrl
  • blockCount : const int
  • defaultFont : QFont
  • defaultStyleSheet : QString
  • defaultTextOption : QTextOption
  • documentMargin : qreal
  • indentWidth : qreal
  • maximumBlockCount : int
  • modified : bool
  • pageSize : QSizeF
  • size : const QSizeF
  • textWidth : qreal
  • undoRedoEnabled : bool
  • useDesignMetrics : bool

Открытые функции

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:

  • Вставка или удаление символов. Последовательность вставок или удалений в пределах одного текстового блока рассматривается как одна операция отмены/повтора.
  • Вставка или удаление текстовых блоков. Последовательности вставки или удаления в одной операции (например, при выделении и последующем удалении текста) рассматриваются как одна операция отмены/повтора.
  • Изменение формата символов текста.
  • Изменение формата текстовых блоков.
  • Изменение формата группы текстовых блоков.
END_OF_DOCUMENT_MARKER ```

См. также 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API