PySide6.QtGui.QTextBlock

class QTextBlock

QTextBlock 类为 QTextDocument 中的文本片段提供了一个容器。More_

概要

方法

注意

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

详细描述

一个文本块封装了QTextDocument中的一段或一段文本。QTextBlock提供了对QTextDocuments的块/段落结构的只读访问。它主要用于如果你想为QTextDocument的视觉表示实现自己的布局,或者如果你想遍历文档并以自己的自定义格式写出内容。

文本块是由它们的父文档创建的。如果您需要创建一个新的文本块,或者在检查文档内容时修改其内容,请使用由QTextCursor提供的基于光标的接口。

每个文本块位于document()中的特定position()。可以通过使用text()函数获取块的内容。length()函数确定块在文档中的大小(包括格式化字符)。块的视觉属性由其文本layout()charFormat()blockFormat()决定。

next()previous() 函数允许在迭代过程中文档未被其他方式修改的条件下,对文档中的连续有效块进行迭代。请注意,尽管块是按顺序返回的,但相邻的块可能来自文档结构中的不同位置。可以通过调用 isValid() 来确定块的有效性。

QTextBlock 提供了比较运算符,以便更容易地处理块:operator==() 比较两个块是否相等,operator!=() 比较两个块是否不相等,operator 确定一个块是否在同一文档中位于另一个块之前。

__init__()
__init__(o)
Parameters:

oQTextBlock

other文本块的属性复制到此文本块。

__iter__()
Return type:

对象

begin()
Return type:

iterator

返回一个指向文本块开头的文本块迭代器。

另请参阅

end()

blockFormat()
Return type:

QTextBlockFormat

返回描述块特定属性的QTextBlockFormat

另请参阅

charFormat()

blockFormatIndex()
Return type:

整数

返回文本块格式在文档内部块格式列表中的索引。

另请参阅

allFormats()

blockNumber()
Return type:

整数

返回此区块的编号,如果区块无效则返回-1。

另请参阅

blockNumber()

charFormat()
Return type:

QTextCharFormat

返回描述块的字符格式的QTextCharFormat。块的字符格式在将文本插入空块时使用。

另请参阅

blockFormat()

charFormatIndex()
Return type:

整数

返回文本块的字符格式在文档内部字符格式列表中的索引。

另请参阅

allFormats()

clearLayout()

清除用于布局和显示块内容的QTextLayout

另请参阅

layout()

contains(position)
Parameters:

position – int

Return type:

布尔

如果给定的position位于文本块内,则返回true;否则返回false

document()
Return type:

QTextDocument

返回此文本块所属的文本文档,如果文本块不属于任何文档,则返回None

end()
Return type:

iterator

返回一个指向文本块末尾的文本块迭代器。

另请参阅

begin() next() previous()

firstLineNumber()
Return type:

整数

返回此块的第一个行号,如果块无效则返回-1。除非布局支持,否则行号与块号相同。

另请参阅

blockNumber()

fragmentIndex()
Return type:

整数

isValid()
Return type:

布尔

如果此文本块有效,则返回 true;否则返回 false

isVisible()
Return type:

布尔

如果块可见,则返回 true;否则返回 false

另请参阅

setVisible()

layout()
Return type:

QTextLayout

返回用于布局和显示块内容的QTextLayout

请注意,返回的QTextLayout对象只能从QAbstractTextDocumentLayout子类的documentChanged实现中进行修改。从外部应用的任何更改都会导致未定义的行为。

另请参阅

clearLayout()

length()
Return type:

整数

返回块的长度,以字符为单位。

注意

返回的长度包括所有格式化字符,例如换行符。

lineCount()
Return type:

整数

返回行数。并非所有文档布局都支持此功能。

另请参阅

setLineCount()

next()
Return type:

QTextBlock

返回文档中此块之后的文本块,如果这是最后一个块,则返回一个空的文本块。

请注意,下一个块可能位于与此块不同的框架或表格中。

另请参阅

previous() begin() end()

__ne__(o)
Parameters:

oQTextBlock

Return type:

布尔

如果此文本块与other文本块不同,则返回true

__lt__(o)
Parameters:

oQTextBlock

Return type:

布尔

如果此文本块在文档中出现在other文本块之前,则返回true

__eq__(o)
Parameters:

oQTextBlock

Return type:

布尔

如果此文本块与other文本块相同,则返回true

position()
Return type:

整数

返回块中第一个字符在文档中的索引。

previous()
Return type:

QTextBlock

返回文档中此块之前的文本块,如果这是第一个块,则返回一个空的文本块。

请注意,前一个块可能位于与此块不同的框架或表格中。

另请参阅

next() begin() end()

revision()
Return type:

整数

返回块的修订版本。

另请参阅

setRevision() revision()

setLineCount(count)
Parameters:

count – int

将行数设置为 count

另请参阅

lineCount()

setRevision(rev)
Parameters:

rev – 整数

将块的修订设置为 rev

另请参阅

revision() revision()

setUserData(data)
Parameters:

数据QTextBlockUserData

将给定的data对象附加到文本块。

QTextBlockUserData 可用于存储自定义设置。所有权传递给底层文本文档,即如果相应的文本块被删除,提供的 QTextBlockUserData 对象将被删除。用户数据对象不存储在撤销历史记录中,因此在撤销文本块的删除后将不可用。

例如,如果您在IDE中编写一个编程编辑器,您可能希望让用户为集成调试器在代码中直观地设置断点。在编程编辑器中,一行文本通常对应一个QTextBlockQTextBlockUserData接口允许开发者为每个QTextBlock存储数据,例如用户在源代码的哪些行设置了断点。当然,这也可以外部存储,但通过将其存储在QTextDocument中,例如当用户删除相关行时,它将自动删除。这实际上是一种在QTextDocument中存储自定义信息的方式,而不使用QTextFormat中的自定义属性,这会影响撤销/重做堆栈。

另请参阅

userData()

setUserState(state)
Parameters:

状态 – int

在文本块中存储指定的state整数值。例如,在语法高亮器中存储文本解析状态时,这可能很有用。

另请参阅

userState()

setVisible(visible)
Parameters:

visible – 布尔值

将块的可见性设置为visible

另请参阅

isVisible()

text()
Return type:

字符串

以纯文本形式返回块的内容。

textDirection()
Return type:

LayoutDirection

返回解析后的文本方向。

如果块没有明确设置方向,它将从块的内容中解析方向。返回 Qt::LeftToRight 或 Qt::RightToLeft。

另请参阅

layoutDirection() LayoutDirection

textFormats()
Return type:

QTextLayout.FormatRange的列表

返回块的文本格式选项作为QTextCharFormat的连续范围列表。当在范围边界内插入文本时,使用该范围的字符格式。

textList()
Return type:

QTextList

如果块表示列表项,则返回该项所属的列表;否则返回None

userData()
Return type:

QTextBlockUserData

返回一个指向QTextBlockUserData对象的指针,如果已经使用setUserData()设置了该对象,否则返回None

另请参阅

setUserData()

userState()
Return type:

整数

返回之前使用setUserState()设置的整数值,如果没有设置则返回-1。

另请参阅

setUserState()

class iterator

iterator 类提供了一个迭代器,用于读取 QTextBlock 的内容。More_

概要

方法

注意

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

详细描述

警告

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

一个块由一系列文本片段组成。这个类提供了一种遍历这些片段并读取其内容的方法。它不提供修改块的内部结构或内容的方法。

可以构造一个迭代器,并按以下方式使用它来访问文本块中的片段:

QTextBlock.iterator it
for it in currentBlock:
    currentFragment = it.fragment()
    if currentFragment.isValid():
        processFragment(currentFragment)

另请参阅

QTextFragment

__init__()

为这个文本块构造一个迭代器。

__iter__()
Return type:

对象

__next__()
Return type:

对象

atEnd()
Return type:

布尔

如果当前项是文本块中的最后一项,则返回 true

fragment()
Return type:

QTextFragment

返回迭代器当前指向的文本片段。

__ne__(o)
Parameters:

oiterator

Return type:

布尔

如果此迭代器与other迭代器不同,则返回true;否则返回false

__iadd__(arg__1)
Parameters:

arg__1 – 整数

Return type:

iterator

后缀++运算符(i++)将迭代器推进到文本块中的下一个项目,并返回一个指向旧当前项目的迭代器。

__isub__(arg__1)
Parameters:

arg__1 – 整数

Return type:

iterator

后缀 – 运算符 (i--) 使前一个项目成为当前项目,并返回一个指向旧当前项目的迭代器。

__eq__(o)
Parameters:

oiterator

Return type:

布尔

如果此迭代器与other迭代器相同,则返回true;否则返回false