Spec-Zone.ru › Qt 5.12

Класс QAbstractTextDocumentLayout

Класс QAbstractTextDocumentLayout — это абстрактный базовый класс, используемый для реализации пользовательских макетов для QTextDocuments. Подробнее...

Заголовок: #include <QAbstractTextDocumentLayout>
qmake: QT += gui
Наследует: QObject
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Примечание: Все функции в этом классе являются реентерабельными.

Публичные типы

класс PaintContext
класс Selection

Публичные функции

QAbstractTextDocumentLayout(QTextDocument *document)
QString anchorAt(const QPointF &position) const
virtual QRectF blockBoundingRect(const QTextBlock &block) const = 0
QTextDocument * document() const
virtual QSizeF documentSize() const = 0
virtual void draw(QPainter *painter, const QAbstractTextDocumentLayout::PaintContext &context) = 0
QTextFormat formatAt(const QPointF &pos) const
virtual QRectF frameBoundingRect(QTextFrame *frame) const = 0
QTextObjectInterface * handlerForObject(int objectType) const
virtual int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const = 0
QString imageAt(const QPointF &pos) const
virtual int pageCount() const = 0
QPaintDevice * paintDevice() const
void registerHandler(int objectType, QObject *component)
void setPaintDevice(QPaintDevice *device)
void unregisterHandler(int objectType, QObject *component = nullptr)
  • 31 публичная функция, унаследованная от QObject

Сигналы

void documentSizeChanged(const QSizeF &newSize)
void pageCountChanged(int newPages)
void update(const QRectF &rect = QRectF(0., 0., 1000000000., 1000000000.))
void updateBlock(const QTextBlock &block)
  • 2 сигнала, унаследованных от QObject

Статические публичные члены

const QMetaObject staticMetaObject
  • 9 статических публичных членов, унаследованных от QObject

Защищенные функции

virtual void documentChanged(int position, int charsRemoved, int charsAdded) = 0
virtual void drawInlineObject(QPainter *painter, const QRectF &rect, QTextInlineObject object, int posInDocument, const QTextFormat &format)
QTextCharFormat format(int position)
virtual void positionInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format)
virtual void resizeInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format)
  • 9 защищенных функций, унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 публичный слот, унаследованный от QObject

Подробное описание

Класс QAbstractTextDocumentLayout — это абстрактный базовый класс, используемый для реализации пользовательских макетов для QTextDocuments.

Стандартный макет, предоставляемый Qt, может обрабатывать простую текстовую обработку, включая встраиваемые изображения, списки и таблицы.

Некоторые приложения, например, текстовый редактор или приложение DTP, могут потребовать больше функций, чем те, которые предоставляются механизмом макета Qt, в этом случае вы можете создать подкласс QAbstractTextDocumentLayout, чтобы предоставить пользовательское поведение макета для ваших текстовых документов.

Экземпляр подкласса QAbstractTextDocumentLayout может быть установлен на объект QTextDocument с помощью функции setDocumentLayout().

Вы можете вставлять пользовательские объекты в QTextDocument; см. описание класса QTextObjectInterface для получения подробной информации.

См. также QTextObjectInterface.

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

QAbstractTextDocumentLayout::QAbstractTextDocumentLayout(QTextDocument *document)

Создает новый макет текстового документа для данного document.

QString QAbstractTextDocumentLayout::anchorAt(const QPointF &position) const

Возвращает ссылку на якорь, заданную position, или пустую строку, если якорь в этой точке не существует.

QRectF QAbstractTextDocumentLayout::blockBoundingRect(const QTextBlock &block) const

Возвращает прямоугольник ограничивающей рамки block.

QTextDocument *QAbstractTextDocumentLayout::document() const

Возвращает текстовый документ, на котором работает этот макет.

void QAbstractTextDocumentLayout::documentChanged(int position, int charsRemoved, int charsAdded)

Эта функция вызывается всякий раз, когда содержимое документа изменяется. Изменение происходит, когда текст вставляется, удаляется или комбинируется эти два действия. Изменение задается position, charsRemoved и charsAdded, соответствующими начальной позиции символа изменения, количеству удаленных символов из документа и количеству добавленных символов.

END_OF_DOCUMENT_MARKER

Например, при вставке текста "Hello" в пустой документ, charsRemoved будет 0, а charsAdded — 5 (длина строки).

Замена текста — это сочетание удаления и вставки. Например, если текст "Hello" заменяется на "Hi", charsRemoved будет 5, а charsAdded — 2.

Для подклассов QAbstractTextDocumentLayout эта функция является центральной, где выполняется большая часть работы по выкладке и позиционированию содержимого документа.

Например, в подклассе, который только организует блоки текста, реализация этой функции должна выполнять следующие действия:

  • Определить список изменённых QTextBlock с помощью предоставленных параметров.
  • Каждый объект QTextBlock должен обработать соответствующий объект QTextLayout. Вы можете получить доступ к макету QTextBlock с помощью функции QTextBlock::layout(). Эта обработка должна учитывать размер страницы документа.
  • Если общее количество страниц изменилось, необходимо выпустить сигнал pageCountChanged().
  • Если общий размер изменился, необходимо выпустить сигнал documentSizeChanged().
  • Для планирования перерисовки областей макета, требующих перерисовки, должен быть выпущен сигнал update().

См. также QTextLayout.

[pure virtual] QSizeF QAbstractTextDocumentLayout::documentSize() const

Возвращает общий размер макета документа.

Эта информация может быть использована виджетами отображения для корректного обновления полос прокрутки.

См. также documentSizeChanged() и QTextDocument::pageSize.

[signal] void QAbstractTextDocumentLayout::documentSizeChanged(const QSizeF &newSize)

Этот сигнал излучается, когда размер макета документа изменяется на newSize.

Подклассы QAbstractTextDocumentLayout должны излучать этот сигнал, когда изменяется весь размер макета документа. Этот сигнал полезен для виджетов, отображающих текстовые документы, так как позволяет им правильно обновлять полосы прокрутки.

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

[pure virtual] void QAbstractTextDocumentLayout::draw(QPainter *painter, const QAbstractTextDocumentLayout::PaintContext &context)

Отображает макет с помощью заданного painter используя заданный context.

[virtual protected] void QAbstractTextDocumentLayout::drawInlineObject(QPainter *painter, const QRectF &rect, QTextInlineObject object, int posInDocument, const QTextFormat &format)

Эта функция вызывается для отображения встроенного объекта object с заданным painter внутри прямоугольника, заданного rect, используя указанный текст format.

posInDocument указывает положение объекта в документе.

Реализация по умолчанию вызывает drawObject() для обработчиков объектов. Эта функция вызывается только в Qt. Подклассы могут переопределять эту функцию для настройки отображения встроенных объектов.

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

[protected] QTextCharFormat QAbstractTextDocumentLayout::format(int position)

Возвращает форматирование символа, применимое в заданной position.

QTextFormat QAbstractTextDocumentLayout::formatAt(const QPointF &pos) const

Возвращает форматирование текста в заданной позиции pos.

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

[pure virtual] QRectF QAbstractTextDocumentLayout::frameBoundingRect(QTextFrame *frame) const

Возвращает ограничивающий прямоугольник frame.

QTextObjectInterface *QAbstractTextDocumentLayout::handlerForObject(int objectType) const

Возвращает обработчик для объектов заданного типа objectType.

[pure virtual] int QAbstractTextDocumentLayout::hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const

Возвращает позицию курсора для заданной point с указанной accuracy. Возвращает -1, если не найдена корректная позиция курсора.

QString QAbstractTextDocumentLayout::imageAt(const QPointF &pos) const

Возвращает путь к изображению в заданной позиции pos, или пустую строку, если в этой точке нет изображения.

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

[pure virtual] int QAbstractTextDocumentLayout::pageCount() const

Возвращает количество страниц в макете.

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

[signal] void QAbstractTextDocumentLayout::pageCountChanged(int newPages)

Этот сигнал излучается, когда количество страниц в макете изменяется; newPages — обновлённое количество страниц.

Подклассы QAbstractTextDocumentLayout должны излучать этот сигнал, когда количество страниц в макете изменилось. Изменения количества страниц вызваны изменениями в макете или самом содержимом документа.

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

QPaintDevice *QAbstractTextDocumentLayout::paintDevice() const

Возвращает устройство рисования, используемое для отрисовки макета документа.

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

[virtual protected] void QAbstractTextDocumentLayout::positionInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format)

Выкладывает встроенный объект item, используя заданное текстовое format.

posInDocument указывает положение объекта в документе.

Реализация по умолчанию ничего не делает. Эта функция вызывается только в Qt. Подклассы могут переопределить эту функцию, чтобы настроить позиционирование встроенных объектов.

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

void QAbstractTextDocumentLayout::registerHandler(int objectType, QObject *component)

Регистрирует заданный component как обработчик для элементов заданного типа objectType.

Примечание: registerHandler() необходимо вызвать один раз для каждого типа объекта. Это означает, что существует только один обработчик для нескольких символов замены одного и того же типа объекта.

Макет текстового документа не получает владения component.

[virtual protected] void QAbstractTextDocumentLayout::resizeInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format)

Устанавливает размер встроенного объекта item, соответствующего текстовому format.

posInDocument указывает положение объекта в документе.

Реализация по умолчанию изменяет размер item на размер, возвращаемый функцией intrinsicSize() обработчика объекта. Эта функция вызывается только в Qt. Подклассы могут переопределять эту функцию, чтобы настроить изменение размера встроенных объектов.

void QAbstractTextDocumentLayout::setPaintDevice(QPaintDevice *device)

Устанавливает устройство рисования для отрисовки макета документа на заданное device.

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

void QAbstractTextDocumentLayout::unregisterHandler(int objectType, QObject *component = nullptr)

Удаляет регистрацию заданного component как обработчика для элементов заданного типа objectType, или любого обработчика, если component не указан.

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

[signal] void QAbstractTextDocumentLayout::update(const QRectF &rect = QRectF(0., 0., 1000000000., 1000000000.))

Этот сигнал излучается, когда прямоугольник rect был обновлён.

Подклассы QAbstractTextDocumentLayout должны излучать этот сигнал при изменении макета содержимого, чтобы произвести перерисовку.

END_OF_DOCUMENT_MARKER

[signal] void QAbstractTextDocumentLayout::updateBlock(const QTextBlock &block)

Этот сигнал излучается, когда указанный блок block был обновлён.

Подклассы QAbstractTextDocumentLayout должны излучать этот сигнал, когда макет block изменился, чтобы перерисовать.

Эта функция была представлена в Qt 4.4.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qabstracttextdocumentlayout.html

Spec-Zone.ru

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