PySide6.QtGui.QTextBlock¶
- class QTextBlock¶
QTextBlock类为QTextDocument中的文本片段提供了一个容器。More_…概要¶
方法¶
def
__init__()def
__iter__()def
begin()def
blockFormat()def
blockNumber()def
charFormat()def
clearLayout()def
contains()def
document()def
end()def
fragmentIndex()def
isValid()def
isVisible()def
layout()def
length()def
lineCount()def
next()def
__ne__()def
__lt__()def
__eq__()def
position()def
previous()def
revision()def
setLineCount()def
setRevision()def
setUserData()def
setUserState()def
setVisible()def
text()def
textDirection()def
textFormats()def
textList()def
userData()def
userState()
注意
本文档可能包含从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:
o –
QTextBlock
将
other文本块的属性复制到此文本块。- __iter__()¶
- Return type:
对象
返回一个指向文本块开头的文本块迭代器。
另请参阅
- blockFormat()¶
- Return type:
返回描述块特定属性的
QTextBlockFormat。另请参阅
- blockFormatIndex()¶
- Return type:
整数
返回文本块格式在文档内部块格式列表中的索引。
另请参阅
- blockNumber()¶
- Return type:
整数
返回此区块的编号,如果区块无效则返回-1。
另请参阅
- charFormat()¶
- Return type:
返回描述块的字符格式的
QTextCharFormat。块的字符格式在将文本插入空块时使用。另请参阅
- charFormatIndex()¶
- Return type:
整数
返回文本块的字符格式在文档内部字符格式列表中的索引。
另请参阅
- clearLayout()¶
清除用于布局和显示块内容的
QTextLayout。另请参阅
- contains(position)¶
- Parameters:
position – int
- Return type:
布尔
如果给定的
position位于文本块内,则返回true;否则返回false。- document()¶
- Return type:
返回此文本块所属的文本文档,如果文本块不属于任何文档,则返回
None。返回一个指向文本块末尾的文本块迭代器。
另请参阅
- firstLineNumber()¶
- Return type:
整数
返回此块的第一个行号,如果块无效则返回-1。除非布局支持,否则行号与块号相同。
另请参阅
- fragmentIndex()¶
- Return type:
整数
- isValid()¶
- Return type:
布尔
如果此文本块有效,则返回
true;否则返回false。- isVisible()¶
- Return type:
布尔
如果块可见,则返回
true;否则返回false。另请参阅
- layout()¶
- Return type:
返回用于布局和显示块内容的
QTextLayout。请注意,返回的
QTextLayout对象只能从QAbstractTextDocumentLayout子类的documentChanged实现中进行修改。从外部应用的任何更改都会导致未定义的行为。另请参阅
- length()¶
- Return type:
整数
返回块的长度,以字符为单位。
- lineCount()¶
- Return type:
整数
返回行数。并非所有文档布局都支持此功能。
另请参阅
- next()¶
- Return type:
返回文档中此块之后的文本块,如果这是最后一个块,则返回一个空的文本块。
请注意,下一个块可能位于与此块不同的框架或表格中。
另请参阅
- __ne__(o)¶
- Parameters:
o –
QTextBlock- Return type:
布尔
如果此文本块与
other文本块不同,则返回true。- __lt__(o)¶
- Parameters:
o –
QTextBlock- Return type:
布尔
如果此文本块在文档中出现在
other文本块之前,则返回true。- __eq__(o)¶
- Parameters:
o –
QTextBlock- Return type:
布尔
如果此文本块与
other文本块相同,则返回true。- position()¶
- Return type:
整数
返回块中第一个字符在文档中的索引。
- previous()¶
- Return type:
返回文档中此块之前的文本块,如果这是第一个块,则返回一个空的文本块。
请注意,前一个块可能位于与此块不同的框架或表格中。
- revision()¶
- Return type:
整数
返回块的修订版本。
另请参阅
- setLineCount(count)¶
- Parameters:
count – int
将行数设置为
count。另请参阅
- setRevision(rev)¶
- Parameters:
rev – 整数
将块的修订设置为
rev。另请参阅
- setUserData(data)¶
- Parameters:
数据 –
QTextBlockUserData
将给定的
data对象附加到文本块。QTextBlockUserData可用于存储自定义设置。所有权传递给底层文本文档,即如果相应的文本块被删除,提供的QTextBlockUserData对象将被删除。用户数据对象不存储在撤销历史记录中,因此在撤销文本块的删除后将不可用。例如,如果您在IDE中编写一个编程编辑器,您可能希望让用户为集成调试器在代码中直观地设置断点。在编程编辑器中,一行文本通常对应一个
QTextBlock。QTextBlockUserData接口允许开发者为每个QTextBlock存储数据,例如用户在源代码的哪些行设置了断点。当然,这也可以外部存储,但通过将其存储在QTextDocument中,例如当用户删除相关行时,它将自动删除。这实际上是一种在QTextDocument中存储自定义信息的方式,而不使用QTextFormat中的自定义属性,这会影响撤销/重做堆栈。另请参阅
- setUserState(state)¶
- Parameters:
状态 – int
在文本块中存储指定的
state整数值。例如,在语法高亮器中存储文本解析状态时,这可能很有用。另请参阅
- setVisible(visible)¶
- Parameters:
visible – 布尔值
将块的可见性设置为
visible。另请参阅
- text()¶
- Return type:
字符串
以纯文本形式返回块的内容。
- textDirection()¶
- Return type:
返回解析后的文本方向。
如果块没有明确设置方向,它将从块的内容中解析方向。返回 Qt::LeftToRight 或 Qt::RightToLeft。
另请参阅
layoutDirection()LayoutDirection- textFormats()¶
- Return type:
返回块的文本格式选项作为
QTextCharFormat的连续范围列表。当在范围边界内插入文本时,使用该范围的字符格式。如果块表示列表项,则返回该项所属的列表;否则返回
None。- userData()¶
- Return type:
返回一个指向
QTextBlockUserData对象的指针,如果已经使用setUserData()设置了该对象,否则返回None。另请参阅
- userState()¶
- Return type:
整数
返回之前使用
setUserState()设置的整数值,如果没有设置则返回-1。另请参阅
- class iterator¶
iterator类提供了一个迭代器,用于读取QTextBlock的内容。More_…概要¶
方法¶
def
__init__()def
__iter__()def
__next__()def
atEnd()def
fragment()def
__ne__()def
__iadd__()def
__isub__()def
__eq__()
注意
本文档可能包含从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)
另请参阅
- __init__()¶
为这个文本块构造一个迭代器。
- __iter__()¶
- Return type:
对象
- __next__()¶
- Return type:
对象
- atEnd()¶
- Return type:
布尔
如果当前项是文本块中的最后一项,则返回
true。- fragment()¶
- Return type:
返回迭代器当前指向的文本片段。
如果此迭代器与
other迭代器不同,则返回true;否则返回false。后缀++运算符(
i++)将迭代器推进到文本块中的下一个项目,并返回一个指向旧当前项目的迭代器。后缀 – 运算符 (
i--) 使前一个项目成为当前项目,并返回一个指向旧当前项目的迭代器。如果此迭代器与
other迭代器相同,则返回true;否则返回false。