PySide6.QtGui.QTextObjectInterface

class QTextObjectInterface

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

概要

虚拟方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

文本对象描述了文本文档中一个或多个元素的结构;例如,从HTML导入的图像是使用文本对象实现的。当文档被渲染时,文本对象知道如何布局和绘制其元素。

Qt 允许通过向 QTextCharFormat 注册自定义的 object type 来将自定义文本对象插入到文档中。还必须为此类型实现一个 QTextObjectInterface,并将其 registered 到文档的 QAbstractTextDocumentLayout 中。在渲染 QTextDocument 时遇到该对象类型时,将调用接口的 intrinsicSize()drawObject() 函数。

以下列表解释了将自定义文本对象插入文档所需的步骤:

实现文本对象的类需要同时继承QObject和QTextObjectInterface。QObject必须是第一个继承的类。例如:

class SvgTextObject(QObject, QTextObjectInterface):

    Q_OBJECT
    Q_INTERFACES(QTextObjectInterface)

文本对象的数据通常使用setProperty()存储在QTextCharFormat中,然后使用property()检索。

警告

复制和粘贴操作会忽略自定义文本对象。

abstract drawObject(painter, rect, doc, posInDocument, format)
Parameters:

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

要绘制的矩形的大小,rect,是之前由intrinsicSize()计算的大小。矩形的位置相对于painter

你还可以获取文档(doc)和该文档中format的位置(posInDocument)。

另请参阅

intrinsicSize()

abstract intrinsicSize(doc, posInDocument, format)
Parameters:
Return type:

QSizeF

intrinsicSize() 函数返回由 format 表示的文本对象在给定文档 (doc) 中给定位置 (posInDocument) 的大小。

计算的大小将用于后续对此formatdrawObject()调用。

另请参阅

drawObject()