class QTextObjectInterface#

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

概述#

虚拟方法#

注意

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

详细说明#

警告

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

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

Qt 允许通过将自定义的 对象类型 注册到 QTextCharFormat 中将自定义文本对象插入文档中。还必须为该类型实现 QTextObjectInterface 并在文档的 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)#
参数:

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

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

您还可以获得文档(doc)和格式(posInDocument)在文档中的位置。

另请参阅

intrinsicSize()

abstract intrinsicSize(doc, posInDocument, format)#
参数:
返回类型:

QSizeF

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

计算的大小将用于对该 format 下后续调用 drawObject() 的使用。

另请参阅

drawObject()