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:
画家 –
QPainter
context –
PaintContext
使用给定的
painter
和context
绘制布局。- drawInlineObject(painter, rect, object, posInDocument, format)¶
- Parameters:
画家 –
QPainter
rect –
QRectF
对象 –
QTextInlineObject
posInDocument – 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:
点 –
QPointF
accuracy –
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:
项目 –
QTextInlineObject
posInDocument – int
format –
QTextFormat
使用给定的文本
format
来布局内联对象item
。posInDocument
指定对象在文档中的位置。默认实现不执行任何操作。此函数仅在Qt内部调用。子类可以重新实现此函数以自定义内联对象的位置。
另请参阅
将给定的
component
注册为给定objectType
项的处理程序。注意
对于每种对象类型,registerHandler() 只需要调用一次。这意味着对于相同对象类型的多个替换字符,只有一个处理程序。
文本文档布局不拥有
component
。- resizeInlineObject(item, posInDocument, format)¶
- Parameters:
项目 –
QTextInlineObject
posInDocument – 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__()¶