PySide6.QtCore.QCollator¶
- class QCollator¶
QCollator类根据本地化的排序算法比较字符串。更多…概要¶
方法¶
def
__init__()def
compare()def
locale()def
numericMode()def
__call__()def
setLocale()def
setNumericMode()def
sortKey()def
swap()
静态函数¶
def
defaultCompare()def
defaultSortKey()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QCollator使用QLocale进行初始化。然后可以使用它来根据该区域设置的适当顺序比较和排序字符串。一个
QCollator对象可以与基于模板的排序算法(如std::sort())一起使用,以对包含QString条目的列表进行排序。def sortedStrings(seq): order = QCollator() std::sort(seq.begin(), seq.end(), order) return seq
除了区域设置外,还可以设置几个可选标志,这些标志会影响排序的结果。
POSIX 回退实现¶
在Unix系统上,Qt通常编译为使用ICU(除了macOS,Qt默认使用等效的Apple API)。然而,如果在编译时ICU不可用或显式禁用,Qt将使用仅使用POSIX API的后备后端。这个后端有几个限制:
caseSensitivity()不支持:只能执行区分大小写的排序。numericMode()和ignorePunctuation()不被支持。
使用任何不受支持的选项都会导致警告被打印到应用程序的输出中。
- __init__()¶
使用默认区域设置的排序区域设置构造一个
QCollator。系统区域设置,当用作默认区域设置时,可能具有与其自身不同的排序区域设置(例如,在Unix上,如果LC_COLLATE在环境中设置为与LANG不同)。所有其他区域设置都是它们自己的排序区域设置。
- __init__(other)
- Parameters:
其他 –
QCollator
创建
other的副本。- __init__(locale)
- Parameters:
locale –
QLocale
使用给定的
locale构造一个QCollator。另请参阅
- caseSensitivity()¶
- Return type:
返回校对器的区分大小写设置。
在设置之前,默认情况下是区分大小写的。
注意
在C语言环境中,当区分大小写时,所有小写字母都排在大写字母之后,而在大多数语言环境中,每个小写字母要么紧接在其大写字母之前,要么紧接在其大写字母之后。因此,“Zap”在C语言环境中排在“ape”之前,但在大多数其他语言环境中排在“ape”之后。
另请参阅
- compare(s1, s2)¶
- Parameters:
s1 – 字符串
s2 – 字符串
- Return type:
整数
比较
s1与s2。如果
s1小于s2,则返回一个负整数;如果大于s2,则返回一个正整数;如果相等,则返回零。- compare(s1, s2)
- Parameters:
s1 – 字符串
s2 – 字符串
- Return type:
整数
这是一个重载函数。
- compare(s1, len1, s2, len2)
- Parameters:
s1 –
QCharlen1 – int
s2 –
QCharlen2 – 整数
- Return type:
整数
这是一个重载函数。
比较
s1和s2。len1和len2指定由s1和s2指向的QChar数组的长度。如果
s1小于s2,则返回一个负整数;如果大于s2,则返回一个正整数;如果相等,则返回零。注意
在Qt 6.4之前的版本中,长度参数的类型是
int,而不是qsizetype。- static defaultCompare(s1, s2)¶
- Parameters:
s1 – 字符串
s2 – 字符串
- Return type:
整数
比较字符串
s1和s2,返回它们的排序顺序。此函数执行与默认构造的QCollator对象上的compare()相同的操作。- static defaultSortKey(key)¶
- Parameters:
key – str
- Return type:
返回字符串
key的排序键。此函数在默认构造的QCollator对象上执行与sortKey()相同的操作。- ignorePunctuation()¶
- Return type:
布尔
返回在排序时是否忽略标点符号和符号。
当
true时,字符串的比较会忽略所有标点符号和符号。返回排序器的区域设置。
除非通过构造函数或调用
setLocale()提供,否则将使用系统的默认排序区域设置。另请参阅
- numericMode()¶
- Return type:
布尔
如果启用了数字排序,则返回
true,否则返回false。当
true时,数字被识别为数字并按算术顺序排序;例如,100 排在 99 之后。当false时,数字按字典顺序排序,因此 100 排在 99 之前(因为 1 在 9 之前)。默认情况下,此选项是禁用的。另请参阅
- __call__(s1, s2)¶
- Parameters:
s1 – 字符串
s2 – 字符串
- Return type:
布尔
一个
QCollator可以用作排序算法的比较函数。如果s1在s2之前排序,则返回true,否则返回false。另请参阅
- __call__(s1, s2)
- Parameters:
s1 – 字符串
s2 – 字符串
- Return type:
布尔
这是一个重载函数。
- setCaseSensitivity(cs)¶
- Parameters:
cs –
CaseSensitivity
将排序器的区分大小写设置为
cs。另请参阅
- setIgnorePunctuation(on)¶
- Parameters:
on – 布尔值
如果
on为true,则忽略标点符号和符号,如果false,则关注它们。另请参阅
将排序器的区域设置设置为
locale。另请参阅
- setNumericMode(on)¶
- Parameters:
on – 布尔值
当
on为true时,启用数字排序模式。另请参阅
- sortKey(string)¶
- Parameters:
字符串 – str
- Return type:
返回一个用于
string的sortKey。创建排序键通常比直接使用
compare()方法稍慢一些。但如果字符串被反复比较(例如在对整个字符串列表进行排序时),通常更快的方法是为每个字符串创建排序键,然后使用这些键进行排序。注意
在Darwin上不支持C(也称为POSIX)区域设置。
将此排序器与
other交换。此函数非常快且永远不会失败。