QTextObjectInterface#

The QTextObjectInterface class allows drawing of custom text objects in QTextDocument s. More

Synopsis#

Virtual functions#

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description#

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

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 object type with QTextCharFormat . A QTextObjectInterface must also be implemented for this type and be registered with the QAbstractTextDocumentLayout of the document. When the object type is encountered while rendering a QTextDocument , the intrinsicSize() and 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(QObject, QTextObjectInterface):

    Q_OBJECT
    Q_INTERFACES(QTextObjectInterface)

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

Warning

Copy and Paste operations ignore custom text objects.

class PySide6.QtGui.QTextObjectInterface#
abstract PySide6.QtGui.QTextObjectInterface.drawObject(painter, rect, doc, posInDocument, format)#
Parameters:

Draws this text object using the specified 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.

See also

intrinsicSize()

abstract PySide6.QtGui.QTextObjectInterface.intrinsicSize(doc, posInDocument, format)#
Parameters:
Return type:

PySide6.QtCore.QSizeF

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.

See also

drawObject()