Spec-Zone.ru › Qt 5.11

Класс 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)
  • 34 функций публичного доступа, унаследованных от 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

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

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
  • 1 переменная публичного доступа, унаследованная от QObject
  • 10 статических членов публичного доступа, унаследованных от QObject
  • 2 защищенные переменные, унаследованные от 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, соответствующими начальной позиции символа изменения, числу удалённых символов из документа и числу добавленных символов.

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

Замена текста — это комбинация удаления и вставки. Например, если текст «Привет» заменяется на «Здравствуй», то 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 должны испускать этот сигнал, когда макет содержимого меняется, чтобы перерисовать.

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

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

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

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

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

Spec-Zone.ru

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