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
。