Spec-Zone.ru › Qt 5.15

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

Свойства

  • 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()
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, Обработка форматированного текста и Пример объекта текста.

Документация типов членов

enum QTextDocument::FindFlagflags QTextDocument::FindFlags

Этот перечисление описывает доступные параметры для функции поиска QTextDocument. Параметры могут быть объединены с помощью операции OR из следующего списка:

Постоянная Значение Описание
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)

Создаёт и возвращает новый объект документа (объект 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 в документе. Это позволяет устанавливать глобальные свойства для документа, такие как режим перевода слов по умолчанию.

Примечание: Функция-геттер для свойства defaultTextOption.

Эта функция была добавлена в Qt 4.3.

См. также setDefaultTextOption().

QAbstractTextDocumentLayout *QTextDocument::documentLayout() const

Возвращает макет документа для данного документа.

См. также setDocumentLayout().

void QTextDocument::drawContents(QPainter *p, const QRectF &rect = QRectF())

Рисует содержимое документа с помощью painter p, ограниченного прямоугольником rect. Если rect — пустой прямоугольник (по умолчанию), то документ рисуется без ограничений.

Эта функция была добавлена в Qt 4.2.

QTextBlock QTextDocument::end() const

Эта функция возвращает блок для проверки конца документа при итерации по нему.

    for (QTextBlock it = doc->begin(); it != doc->end(); it = it.next())
        cout << it.text().toStdString() << Qt::endl;

Возвращаемый блок недействителен и представляет блок после последнего блока в документе. Используйте 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.

Эта функция вызывается движком форматирования Rich Text для запроса данных, которые не хранятся напрямую в QTextDocument, но всё же связаны с ним. Например, изображения ссылаются косвенно через атрибут name объекта 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 позиционируется в конце места, где операция редактирования была повторена.

Данная функция была введена в Qt 4.2.

QVariant QTextDocument::resource(int type, const QUrl &name) const

Возвращает данные указанного типа type из ресурса с заданным именем name.

Эта функция вызывается движком форматирования Rich Text для запроса данных, которые не хранятся напрямую в QTextDocument, но всё же связаны с ним. Например, изображения ссылаются косвенно через атрибут name объекта 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.

Примечание: Функция-сеттер для свойства defaultTextOption.

Функция была добавлена в Qt 4.3.

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

Функция была добавлена в Qt 4.4.

См. также 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 Undo Framework для получения подробной информации.

Функция была добавлена в 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.15/qtextdocument.html

Spec-Zone.ru

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