Spec-Zone.ru › Qt 5.9

Класс QAbstractTextDocumentLayout

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

Заголовок: #include <QAbstractTextDocumentLayout>
qmake: QT += gui
Наследуется от: QObject
Наследует:

QPlainTextDocumentLayout

  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются повторно входящими.

Открытые типы

класс 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 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 = Q_NULLPTR)
  • 32 открытые функции, унаследованные от 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
  • 11 статических открытых членов, унаследованных от 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, соответствующими начальной позиции символа изменения, количеству удалённых символов из документа и количеству добавленных символов.

Например, при вставке текста «Привет» в пустой документ, 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 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 = Q_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/qt-5.9/qabstracttextdocumentlayout.html

Spec-Zone.ru

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