PySide6.QtGui.QAbstractTextDocumentLayout

class QAbstractTextDocumentLayout

QAbstractTextDocumentLayout 类是一个抽象基类,用于实现 QTextDocuments 的自定义布局。More_

PySide6.QtGui.QAbstractTextDocumentLayout 的继承图

继承者: QPlainTextDocumentLayout

概要

方法

虚拟方法

信号

注意

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

详细描述

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

一些应用程序,例如文字处理器或桌面出版应用程序,可能需要比Qt的布局引擎提供的更多功能,在这种情况下,您可以子类化QAbstractTextDocumentLayout来为您的文本文档提供自定义布局行为。

QAbstractTextDocumentLayout 子类的实例可以通过 setDocumentLayout() 函数安装在 QTextDocument 对象上。

你可以将自定义对象插入到QTextDocument中;详情请参阅QTextObjectInterface类的描述。

另请参阅

QTextObjectInterface

__init__(doc)
Parameters:

文档QTextDocument

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

anchorAt(pos)
Parameters:

posQPointF

Return type:

字符串

返回给定position处锚点的引用,如果该点没有锚点,则返回空字符串。

abstract blockBoundingRect(block)
Parameters:

QTextBlock

Return type:

QRectF

返回block的边界矩形。

blockWithMarkerAt(pos)
Parameters:

posQPointF

Return type:

QTextBlock

返回在给定位置 pos 找到其 marker 的块(可能是一个列表项)。

document()
Return type:

QTextDocument

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

abstract documentChanged(from, charsRemoved, charsAdded)
Parameters:
  • from – 整数

  • charsRemoved – int

  • charsAdded – int

每当文档内容发生变化时,都会调用此函数。当文本被插入、删除或这两者的组合时,就会发生更改。更改由positioncharsRemovedcharsAdded指定,分别对应于更改的起始字符位置、从文档中删除的字符数和添加的字符数。

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

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

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

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

另请参阅

QTextLayout

abstract documentSize()
Return type:

QSizeF

返回文档布局的总大小。

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

documentSizeChanged(newSize)
Parameters:

newSizeQSizeF

当文档布局的大小更改为newSize时,会发出此信号。

QAbstractTextDocumentLayout 的子类应在文档的整个布局大小发生变化时发出此信号。此信号对于显示文本文档的小部件非常有用,因为它使它们能够正确更新其滚动条。

另请参阅

documentSize()

abstract draw(painter, context)
Parameters:

使用给定的paintercontext绘制布局。

drawInlineObject(painter, rect, object, posInDocument, format)
Parameters:

此函数用于在由rect指定的矩形内使用指定的文本format绘制内联对象object,并使用给定的painter

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

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

另请参阅

draw()

format(pos)
Parameters:

pos – 整数

Return type:

QTextCharFormat

返回适用于给定position的字符格式。

formatAt(pos)
Parameters:

posQPointF

Return type:

QTextFormat

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

formatIndex(pos)
Parameters:

pos – 整数

Return type:

整数

abstract frameBoundingRect(frame)
Parameters:

框架QTextFrame

Return type:

QRectF

返回frame的边界矩形。

handlerForObject(objectType)
Parameters:

objectType – int

Return type:

QTextObjectInterface

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

abstract hitTest(point, accuracy)
Parameters:
Return type:

整数

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

imageAt(pos)
Parameters:

posQPointF

Return type:

字符串

返回给定位置 pos 处的图像源,如果该位置没有图像,则返回空字符串。

abstract pageCount()
Return type:

整数

返回布局中包含的页数。

另请参阅

pageCountChanged()

pageCountChanged(newPages)
Parameters:

newPages – int

当布局中的页数发生变化时,会发出此信号;newPages 是更新后的页数。

QAbstractTextDocumentLayout的子类在布局中的页面数量发生变化时应发出此信号。页面数量的变化是由布局或文档内容本身的变化引起的。

另请参阅

pageCount()

paintDevice()
Return type:

QPaintDevice

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

另请参阅

setPaintDevice()

positionInlineObject(item, posInDocument, format)
Parameters:

使用给定的文本format来布局内联对象item

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

默认实现不执行任何操作。此函数仅在Qt内部调用。子类可以重新实现此函数以自定义内联对象的位置。

另请参阅

drawInlineObject()

registerHandler(objectType, component)
Parameters:
  • objectType – int

  • 组件QObject

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

注意

对于每种对象类型,registerHandler() 只需要调用一次。这意味着对于相同对象类型的多个替换字符,只有一个处理程序。

文本文档布局不拥有component

resizeInlineObject(item, posInDocument, format)
Parameters:

设置与文本format对应的内联对象item的大小。

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

默认实现将item调整为对象处理程序的intrinsicSize()函数返回的大小。此函数仅在Qt内部调用。子类可以重新实现此函数以自定义内联对象的调整大小。

setPaintDevice(device)
Parameters:

设备QPaintDevice

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

另请参阅

paintDevice()

unregisterHandler(objectType[, component=None])
Parameters:
  • objectType – int

  • 组件QObject

取消注册给定的component作为给定objectType项目的处理程序,如果未指定component,则取消注册任何处理程序。

update([rect=QRectF(0., 0., 1000000000., 1000000000.)])
Parameters:

矩形QRectF

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

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

updateBlock(block)
Parameters:

QTextBlock

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

QAbstractTextDocumentLayout 的子类应在 block 的布局发生变化时发出此信号以便重新绘制。

class Selection

注意

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

详细描述

PySide6.QtGui.QAbstractTextDocumentLayout.Selection.cursor
PySide6.QtGui.QAbstractTextDocumentLayout.Selection.format
class PaintContext

概要

方法

注意

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

详细描述

PySide6.QtGui.QAbstractTextDocumentLayout.PaintContext.cursorPosition
PySide6.QtGui.QAbstractTextDocumentLayout.PaintContext.palette
PySide6.QtGui.QAbstractTextDocumentLayout.PaintContext.clip
PySide6.QtGui.QAbstractTextDocumentLayout.PaintContext.selections
__init__()