PySide6.QtCore.QTextBoundaryFinder

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/ )。

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

class BoundaryType

常量

描述

QTextBoundaryFinder.Grapheme

查找一个最小的边界单位,称为字素。它包括字母、标点符号、数字等。

QTextBoundaryFinder.Word

查找一个单词。

QTextBoundaryFinder.Line

查找将文本分成多行的可能位置。

QTextBoundaryFinder.Sentence

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

class BoundaryReason

常量

描述

QTextBoundaryFinder.NotAtBoundary

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

QTextBoundaryFinder.BreakOpportunity

边界查找器位于一个断点机会位置。这样的断点机会可能也是一个项目边界(StartOfItem、EndOfItem 或两者的组合)、强制换行或软连字符。

QTextBoundaryFinder.StartOfItem

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

QTextBoundaryFinder.EndOfItem

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

QTextBoundaryFinder.MandatoryBreak

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

QTextBoundaryFinder.SoftHyphen

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

__init__()

构造一个无效的QTextBoundaryFinder对象。

__init__(other)
Parameters:

其他QTextBoundaryFinder

复制QTextBoundaryFinder对象,other

__init__(type, string)
Parameters:

创建一个QTextBoundaryFinder对象,该对象在string上操作,类型为type

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

  • str – str

  • bufferunsigned char

  • bufferSize – int

创建一个QTextBoundaryFinder对象,该对象在string上操作,类型为type

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

警告

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

boundaryReasons()
Return type:

BoundaryReason 的组合

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

isAtBoundary()
Return type:

布尔

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

isValid()
Return type:

布尔

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

position()
Return type:

整数

返回QTextBoundaryFinder的当前位置。

范围从0(字符串的开头)到字符串的长度(包括在内)。

另请参阅

setPosition()

setPosition(position)
Parameters:

position – int

QTextBoundaryFinder的当前位置设置为position

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

另请参阅

position()

string()
Return type:

字符串

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

toEnd()

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

另请参阅

setPosition() position()

toNextBoundary()
Return type:

整数

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

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

toPreviousBoundary()
Return type:

整数

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

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

toStart()

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

另请参阅

setPosition() position()

type()
Return type:

BoundaryType

返回QTextBoundaryFinder的类型。