QTextObjectInterface 类

QTextObjectInterface 类允许绘制自定义文本对象在 QTextDocument 更多...

头: #include <QTextObjectInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

公共函数

virtual ~QTextObjectInterface ()
virtual void drawObject (QPainter * painter , const QRectF & rect , QTextDocument * doc , int posInDocument , const QTextFormat & format ) = 0
virtual QSizeF intrinsicSize (QTextDocument * doc , int posInDocument , const QTextFormat & format ) = 0

详细描述

A text object describes the structure of one or more elements in a text document; for instance, images imported from HTML are implemented using text objects. A text object knows how to lay out and draw its elements when a document is being rendered.

Qt allows custom text objects to be inserted into a document by registering a custom 对象类型 with QTextCharFormat . A QTextObjectInterface must also be implemented for this type and be registered 采用 QAbstractTextDocumentLayout of the document. When the object type is encountered while rendering a QTextDocument intrinsicSize () 和 drawObject () functions of the interface are called.

The following list explains the required steps of inserting a custom text object into a document:

A class implementing a text object needs to inherit both QObject and QTextObjectInterface. QObject must be the first class inherited. For instance:

class SvgTextObject : public QObject, public QTextObjectInterface
{
    Q_OBJECT
    Q_INTERFACES(QTextObjectInterface)
					

The data of a text object is usually stored in the QTextCharFormat 使用 QTextCharFormat::setProperty (), and then retrieved with QTextCharFormat::property ().

警告: 拷贝和粘贴操作忽略自定义文本对象。

另请参阅 QTextCharFormat and QTextLayout .

成员函数文档编制

[virtual noexcept] QTextObjectInterface:: ~QTextObjectInterface ()

销毁此 QTextObjectInterface .

[pure virtual] void QTextObjectInterface:: drawObject ( QPainter * painter , const QRectF & rect , QTextDocument * doc , int posInDocument , const QTextFormat & format )

绘制此文本对象使用指定 painter .

The size of the rectangle, rect , to draw in is the size previously calculated by intrinsicSize (). The rectangles position is relative to the painter .

You also get the document ( doc ) and the position ( posInDocument ) of the format in that document.

另请参阅 intrinsicSize ().

[pure virtual] QSizeF QTextObjectInterface:: intrinsicSize ( QTextDocument * doc , int posInDocument , const QTextFormat & format )

The intrinsicSize() function returns the size of the text object represented by format in the given document ( doc ) at the given position ( posInDocument ).

The size calculated will be used for subsequent calls to drawObject () for this format .

另请参阅 drawObject ().