PySide6.QtGui.QAbstractTextDocumentLayout¶
- class QAbstractTextDocumentLayout¶
QAbstractTextDocumentLayout类是一个抽象基类,用于实现 QTextDocuments 的自定义布局。More_…概要¶
方法¶
def
__init__()def
anchorAt()def
document()def
format()def
formatAt()def
formatIndex()def
imageAt()def
paintDevice()def
setPaintDevice()
虚拟方法¶
def
documentSize()def
draw()def
hitTest()def
pageCount()
信号¶
def
update()def
updateBlock()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
Qt提供的标准布局可以处理简单的文字处理,包括内嵌图像、列表和表格。
一些应用程序,例如文字处理器或桌面出版应用程序,可能需要比Qt的布局引擎提供的更多功能,在这种情况下,您可以子类化
QAbstractTextDocumentLayout来为您的文本文档提供自定义布局行为。QAbstractTextDocumentLayout子类的实例可以通过setDocumentLayout()函数安装在QTextDocument对象上。你可以将自定义对象插入到
QTextDocument中;详情请参阅QTextObjectInterface类的描述。另请参阅
- __init__(doc)¶
- Parameters:
文档 –
QTextDocument
为给定的
document创建一个新的文本文档布局。返回给定
position处锚点的引用,如果该点没有锚点,则返回空字符串。- abstract blockBoundingRect(block)¶
- Parameters:
块 –
QTextBlock- Return type:
返回
block的边界矩形。返回在给定位置
pos找到其marker的块(可能是一个列表项)。- document()¶
- Return type:
返回此布局正在操作的文本文档。
- abstract documentChanged(from, charsRemoved, charsAdded)¶
- Parameters:
from – 整数
charsRemoved – int
charsAdded – int
每当文档内容发生变化时,都会调用此函数。当文本被插入、删除或这两者的组合时,就会发生更改。更改由
position、charsRemoved和charsAdded指定,分别对应于更改的起始字符位置、从文档中删除的字符数和添加的字符数。例如,当将文本“Hello”插入到空文档中时,
charsRemoved将为 0,而charsAdded将为 5(字符串的长度)。替换文本是删除和插入的组合。例如,如果文本“Hello”被替换为“Hi”,
charsRemoved将是5,charsAdded将是2。对于
QAbstractTextDocumentLayout的子类,这是完成大部分文档内容布局和定位工作的核心函数。例如,在一个仅排列文本块的子类中,此函数的实现必须执行以下操作:
使用提供的参数确定更改的
QTextBlock列表。每个
QTextBlock对象对应的QTextLayout对象都需要被处理。你可以使用layout()函数访问QTextBlock的布局。此处理应考虑文档的页面大小。如果总页数发生变化,应该发出
pageCountChanged()信号。如果总大小发生变化,应该发出
documentSizeChanged()信号。应该发出
update()信号,以安排重新绘制布局中需要重新绘制的区域。
另请参阅
返回文档布局的总大小。
此信息可用于显示小部件以正确更新其滚动条。
当文档布局的大小更改为
newSize时,会发出此信号。QAbstractTextDocumentLayout的子类应在文档的整个布局大小发生变化时发出此信号。此信号对于显示文本文档的小部件非常有用,因为它使它们能够正确更新其滚动条。另请参阅
- abstract draw(painter, context)¶
- Parameters:
画家 –
QPaintercontext –
PaintContext
使用给定的
painter和context绘制布局。- drawInlineObject(painter, rect, object, posInDocument, format)¶
- Parameters:
画家 –
QPainterrect –
QRectF对象 –
QTextInlineObjectposInDocument – int
format –
QTextFormat
此函数用于在由
rect指定的矩形内使用指定的文本format绘制内联对象object,并使用给定的painter。posInDocument指定对象在文档中的位置。默认实现调用对象处理程序上的drawObject()。此函数仅在Qt内部调用。子类可以重新实现此函数以自定义内联对象的绘制。
另请参阅
- format(pos)¶
- Parameters:
pos – 整数
- Return type:
返回适用于给定
position的字符格式。返回给定位置
pos的文本格式。- formatIndex(pos)¶
- Parameters:
pos – 整数
- Return type:
整数
- abstract frameBoundingRect(frame)¶
- Parameters:
框架 –
QTextFrame- Return type:
返回
frame的边界矩形。- handlerForObject(objectType)¶
- Parameters:
objectType – int
- Return type:
返回给定
objectType对象的处理程序。- abstract hitTest(point, accuracy)¶
- Parameters:
点 –
QPointFaccuracy –
HitTestAccuracy
- Return type:
整数
返回给定
point的光标位置,具有指定的accuracy。如果未找到有效的光标位置,则返回-1。返回给定位置
pos处的图像源,如果该位置没有图像,则返回空字符串。- abstract pageCount()¶
- Return type:
整数
返回布局中包含的页数。
另请参阅
- pageCountChanged(newPages)¶
- Parameters:
newPages – int
当布局中的页数发生变化时,会发出此信号;
newPages是更新后的页数。QAbstractTextDocumentLayout的子类在布局中的页面数量发生变化时应发出此信号。页面数量的变化是由布局或文档内容本身的变化引起的。另请参阅
- paintDevice()¶
- Return type:
返回用于渲染文档布局的绘图设备。
另请参阅
- positionInlineObject(item, posInDocument, format)¶
- Parameters:
项目 –
QTextInlineObjectposInDocument – int
format –
QTextFormat
使用给定的文本
format来布局内联对象item。posInDocument指定对象在文档中的位置。默认实现不执行任何操作。此函数仅在Qt内部调用。子类可以重新实现此函数以自定义内联对象的位置。
另请参阅
将给定的
component注册为给定objectType项的处理程序。注意
对于每种对象类型,registerHandler() 只需要调用一次。这意味着对于相同对象类型的多个替换字符,只有一个处理程序。
文本文档布局不拥有
component。- resizeInlineObject(item, posInDocument, format)¶
- Parameters:
项目 –
QTextInlineObjectposInDocument – int
format –
QTextFormat
设置与文本
format对应的内联对象item的大小。posInDocument指定对象在文档中的位置。默认实现将
item调整为对象处理程序的intrinsicSize()函数返回的大小。此函数仅在Qt内部调用。子类可以重新实现此函数以自定义内联对象的调整大小。- setPaintDevice(device)¶
- Parameters:
设备 –
QPaintDevice
将用于渲染文档布局的绘图设备设置为给定的
device。另请参阅
取消注册给定的
component作为给定objectType项目的处理程序,如果未指定component,则取消注册任何处理程序。当矩形
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¶
概要¶
方法¶
def
__init__()
注意
本文档可能包含从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__()¶