class QTextBoundaryFinder#

QTextBoundaryFinder类提供了一种方法来查找字符串中的Unicode文本边界。更多信息...

概要#

方法#

注意

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

详细描述#

QTextBoundaryFinder 允许根据Unicode文本边界规范在一个字符串中找到Unicode文本边界(见Unicode标准附录#14Unicode标准附录#29)。

QTextBoundaryFinder 可以根据 BoundaryType 的值,在四种可能的模式下操作 QString

构成用户认为的一个字符或基本语言单元的Unicode字符单元在这里被称作文本图形簇。例如,两个Unicode字符‘A’ + 重音符号被用户视为一个图形簇,作为单个字符,尽管在这种情况下它们由两个Unicode码点表示(见https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries)。

单词边界用于定位一种语言认为的单词的开始和结束位置(见https://www.unicode.org/reports/tr29/#Word_Boundaries)。

行中断边界给出可能发生行中断的位置,而句子边界将显示整个句子的开始和结束(见https://www.unicode.org/reports/tr29/#Sentence_Boundarieshttps://www.unicode.org/reports/tr14/)。

字符串中的第一个位置始终是一个有效边界,指的是第一个字符之前的位置。字符串长度处的最后一个位置也是有效的,指的是最后一个字符之后的职位。

BoundaryType#

常数

描述

QTextBoundaryFinder.Grapheme

查找最小的边界图形。它包括字母、标点符号、数字等。

QTextBoundaryFinder.Word

查找单词。

QTextBoundaryFinder.Line

查找文本分多行可能的position。

QTextBoundaryFinder.Sentence

查找句子边界。这包括句号、问号等。

BoundaryReason#

常数

描述

QTextBoundaryFinder.NotAtBoundary

(继承自 enum.Flag)边界查找器不在边界位置。

QTextBoundaryFinder.BreakOpportunity

边界查找器在一个断开机会位置。这种断开机会也可能是一个项边界(无论是StartOfItem、EndOfItem还是两者的组合),强制换行,或者软破折号。

QTextBoundaryFinder.StartOfItem

边界查找器位于一个字符、单词、句子或行的开始处。

QTextBoundaryFinder.EndOfItem

边界查找器位于一个字符、单词、句子或行的末尾。

QTextBoundaryFinder.MandatoryBreak

边界查找器位于行末(仅适用于Line边界类型)。

QTextBoundaryFinder.SoftHyphen

边界查找器位于软连字符位置(仅适用于Line边界类型)。

__init__()#

构造一个无效的 QTextBoundaryFinder 对象。

__init__(type, str[, buffer=None[, bufferSize=0]])
参数:
  • typeBoundaryType

  • str – 字符串

  • bufferunsigned char

  • bufferSize – 整数

创建一个 QTextBoundaryFinder 对象,操作类型为 type,处理 str 字符串。

buffer 是一个可选的工作缓冲区,大小为 bufferSize,可以传递给 QTextBoundaryFinder 。如果缓冲区足够大,可以容纳所需的工作数据(bufferSize >= 长度 + 1),它将使用此缓冲区而不是分配自己的缓冲区。

警告

QTextBoundaryFinder 不会创建 string 的副本。确保数组在 QTextBoundaryFinder 对象存活期间已分配的职责属于应用程序程序员。同样适用于 buffer

__init__(type, string)
参数:

创建一个 QTextBoundaryFinder 对象,操作类型为 type,处理 str 字符串。

__init__(other)
参数:

otherQTextBoundaryFinder

复制 QTextBoundaryFinder 对象,即 other

boundaryReasons()#
返回类型:None

组合 BoundaryReason

返回边界查找器选择当前位置作为边界的原因。

isAtBoundary()#
返回类型:None

bool

如果对象的 position() 当前位于有效的文本边界,则返回 true

isValid()#
返回类型:None

bool

如果文本边界查找器有效,则返回 true;否则返回 false。默认的 QTextBoundaryFinder 是无效的。

position()#
返回类型:None

int

返回 QTextBoundaryFinder 的当前位置。

范围是从 0(字符串的开始)到字符串的长度(包括)。

另请参阅

setPosition()

setPosition(position)#
参数:

position – int

QTextBoundaryFinder 的当前位置设置为 position

如果 position 超出范围,它将被绑定到仅有的有效位置。在这种情况下,有效位置是从 0 到字符串长度(包括)。

另请参阅

position()

string()#
返回类型:None

str

返回 QTextBoundaryFinder 对象正在操作的字符串。

toEnd()#

将查找器移动到字符串的末尾。这等效于 setPosition (string.length())。

另请参阅

setPosition() position()

toNextBoundary()#
返回类型:None

int

QTextBoundaryFinder 移动到下一个边界位置并返回该位置。

如果没有下一个边界,则返回 -1。

toPreviousBoundary()#
返回类型:None

int

QTextBoundaryFinder 移动到上一个边界位置并返回该位置。

如果没有上一个边界,则返回 -1。

toStart()#

将找到器移动到字符串的开始位置。这相当于 setPosition (0)。

另请参阅

setPosition() position()

type()#
返回类型:None

BoundaryType

返回 QTextBoundaryFinder 的类型。