class QAbstractTextDocumentLayout#

《QAbstractTextDocumentLayout》类是一个抽象基类,用于实现QTextDocuments的自定义布局。《更多》...

Inheritance diagram of PySide6.QtGui.QAbstractTextDocumentLayout

继承: QPlainTextDocumentLayout

概要#

方法#

虚拟方法#

信号#

注意

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

详细描述#

Qt提供的标准布局可以处理包括内联图像、列表和表格在内的简单文字处理。

某些应用,例如文字处理软件或桌面排版应用,可能需要比Qt布局引擎提供的功能更多,在这种情况下,您可以派生自QAbstractTextDocumentLayout,为您的文本文档提供定制的布局行为。

通过QAbstractTextDocumentLayout子类的实例,可以使用QTextDocument对象的setDocumentLayout()函数安装到其中。

您可以在QTextDocument中插入自定义对象;有关详情,请参阅QTextObjectInterface类描述。

另请参阅

QTextObjectInterface

__init__(doc)#
参数:

docQTextDocument

为给定的document创建一个新的文本文档布局。

anchorAt(pos)#
参数:

posQPointF

返回类型::

字符串

返回给定position的锚点引用,如果没有在那个位置找到锚点,则返回一个空字符串。

抽象 blockBoundingRect(block)#
参数:

blockQTextBlock

返回类型::

QRectF

返回block的边界矩形。

blockWithMarkerAt(pos)#
参数:

posQPointF

返回类型::

QTextBlock

返回在给定位置pos找到标记的块(可能是列表项)。

document()#
返回类型::

QTextDocument

返回此布局所操作的文本文档。

抽象 documentChanged(from, charsRemoved, charsAdded)#
参数:
  • from – int

  • charsRemoved – int

  • charsAdded – int

该函数在文档内容变更时被调用。文本插入、删除或这两者的组合都可以引起变更。变更通过更改的开始字符位置、从文档删除的字符数和添加的字符数来指定。

例如,当将“Hello”文本插入到空文档中时,charsRemoved将等于0,而charsAdded将等于5(字符串的长度)。

替换文本是删除和插入的组合。例如,如果文本“Hello”被替换为“Hi”,则charsRemoved将等于5,而charsAdded将等于2。

对于QAbstractTextDocumentLayout 的子类,这是执行大部分布局和定位文档内容工作的核心函数。

例如,在一个只排列文本块的子类中,此函数的实现必须执行以下操作

  • 使用提供的参数确定已更改的QTextBlock(s)列表。

  • 每个QTextBlock 对象的对应QTextLayout 对象需要被处理。您可以通过layout() 函数访问QTextBlock 的布局。此处理应考虑文档的页面大小。

  • 如果更改的总页数已更改,则应发出pageCountChanged 信号。

  • 如果总大小已更改,则应发出documentSizeChanged 信号。

  • 应该发出update 信号,以安排布局中需要重绘的区域的重绘。

另请参阅

QTextLayout

摘要 documentSize()#
返回类型::

QSizeF

返回文档布局的总大小。

此信息可用于显示小部件正确更新其滚动条。

documentSizeChanged(newSize)#
参数:

newSizeQSizeF

当文档布局的大小改变为 newSize 时,发送此信号。

当子类 QAbstractTextDocumentLayout 的整个布局大小变化时,应发出此信号。对于显示文本文档的控件来说,该信号很有用,因为它使它们可以正确更新滚动条。

另请参阅

documentSize()

摘要 draw(painter, context)#
参数:
  • painterQPainter

  • contextPaintContext

使用给定的 paintercontext 绘制布局。

drawInlineObject(painter, rect, object, posInDocument, format)#
参数:

此函数被调用以在由 rect 指定的矩形内使用指定的文本 formatpainter 绘制内联对象 object

posInDocument 指定了对象在文档中的位置。

默认实现会在对象处理程序上调用 drawObject()。此函数仅在内置 Qt 中调用。子类可以重写此函数以自定义内嵌对象的绘制。

另请参阅

draw()

format(pos)#
参数:

pos - int

返回类型::

QTextCharFormat

返回在给定 position 可用的字符格式。

formatAt(pos)#
参数:

posQPointF

返回类型::

QTextFormat

返回给定位置 pos 的文本格式。

formatIndex(pos)#
参数:

pos - int

返回类型::

int

abstract frameBoundingRect(frame)#
参数:

frameQTextFrame

返回类型::

QRectF

返回 frame 的边界矩形。

handlerForObject(objectType)#
参数:

objectType – int

返回类型::

QTextObjectInterface

返回给定 objectType 对象的处理程序。

abstract hitTest(point, accuracy)#
参数:
返回类型::

int

返回给定 point 的光标位置以及指定的 accuracy。如果没有找到有效的光标位置,则返回 -1。

imageAt(pos)#
参数:

posQPointF

返回类型::

字符串

返回给定位置 pos 的图像来源,或如果在该点不存在图像,则返回空字符串。

abstract pageCount()#
返回类型::

int

返回布局中包含的页数。

另请参阅

pageCountChanged()

pageCountChanged(newPages)#
参数:

newPages – int

此信号在布局中页面数发生变化时发出;newPages是更新后的页面计数。

派生自< bekpage class="reference internal" href="#PySide6.QtGui.QAbstractTextDocumentLayout" title="PySide6.QtGui.QAbstractTextDocumentLayout"">QAbstractTextDocumentLayout的子类应在布局中的页面数发生变化时发出此信号。页面计数的变化是由布局或文档内容的更改引起的。

另请参阅

pageCount()

paintDevice()#
返回类型::

QPaintDevice

返回用于渲染文档布局的绘画设备。

另请参阅

setPaintDevice()

positionInlineObject(item, posInDocument, format)#
参数:

使用给定的文本format对内嵌对象item进行布局。

posInDocument 指定了对象在文档中的位置。

默认实现不会做什么。该函数仅在Qt内部调用。子类可以重写此函数以自定义内嵌对象的位置。

另请参阅

drawInlineObject()

registerHandler(objectType, component)#
参数:
  • objectType – int

  • componentQObject

将给定的component注册为给定objectType项的处理程序。

注意

必须为每个对象类型调用一次registerHandler()。这意味着同一对象类型的多个替代字符只有一个处理程序。

文本文档布局不拥有component

resizeInlineObject(item, posInDocument, format)#
参数:

根据文本format设置与内嵌对象item对应的尺寸。

posInDocument 指定了对象在文档中的位置。

默认实现将item调整到对象处理程序的内禀尺寸函数返回的尺寸。此函数仅在Qt内部调用。子类可以重写此函数以自定义内嵌对象的缩放。

setPaintDevice(device)#
参数:

deviceQPaintDevice

将用于渲染文档布局的绘画设备设置为给定的device

另请参阅

paintDevice()

unregisterHandler(objectType[, component=None])#
参数:
  • objectType – int

  • componentQObject

取消注册给定的component作为objectType项的处理程序,或者在未指定component时取消注册任何处理程序。

update([arg__1=QRectF(0., 0., 1000000000., 1000000000.)])#
参数:

arg__1QRectF

当矩形rect被更新时,会发射此信号。

QAbstractTextDocumentLayout的子类应在内容布局变更以重新绘制时发射此信号。

updateBlock(block)#
参数:

blockQTextBlock

当指定的block被更新时,会发射此信号。

QAbstractTextDocumentLayout的子类应在block的布局变更以重新绘制时发射此信号。