- class QCollator#
-
摘要#
方法#
def
__init__()
def
compare()
def
locale()
def
numericMode()
def
__call__()
def
setLocale()
def
setNumericMode()
定义一个
sortKey()
定义一个
swap()
静态函数#
定义一个
defaultCompare()
定义一个
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()
不受支持。
使用任何不受支持的选项都会在应用程序输出中打印警告。
创建other的副本。
- __init__(locale)
- 参数:
locale –
QLocale
使用给定的locale构建一个
QCollator
对象。参阅
- __init__()
使用默认locale的collation locale构建一个
QCollator
。当系统locale用作默认locale时,其可能有一个不同于自身的collation locale(例如,在Unix上,如果LC_COLLATE在环境中设置为不同于LANG,则如此)。所有其他locale都是它们的自身collation locale。
- caseSensitivity()#
- 返回类型:
返回collator的区分大小写能力。
默认为区分大小写,直到被设置。
注意
在C locale中,当区分大小写时,所有小写字母都排在所有大写字母之后,而大多数locale则将每个小写字母排在它的大写形式之前或之后。因此,在C locale中“Zap”排在“ape”之前,但在大多数其他locale中排在之后。
- compare(s1, s2)#
- 参数:
s1 – str
s2 – str
- 返回类型:
int
比较s1与s2。
如果s1小于s2,则返回一个负整数;如果它大于s2,则返回一个正整数;如果它们相等,则返回零。
- compare(s1, len1, s2, len2)
- 参数:
s1 –
QChar
len1 – 整数
s2 –
QChar
len2 – 整数
- 返回类型:
int
这是一个重载的函数。
比较
s1
和s2
。len1
和len2
规定了指向QChar
数组的s1
和s2
的长度。如果s1小于s2,则返回一个负整数;如果它大于s2,则返回一个正整数;如果它们相等,则返回零。
注意
在 6.4 之前的 Qt 版本中,长度参数的类型是
int
,而不是qsizetype
。- compare(s1, s2)
- 参数:
s1 – str
s2 – str
- 返回类型:
int
这是一个重载的函数。
- static defaultCompare(s1, s2)#
- 参数:
s1 – str
s2 – str
- 返回类型:
int
比较字符串
s1
和s2
,返回它们的排序顺序。此函数执行与在默认构造的QCollator
对象上调用compare()
相同的操作。- static defaultSortKey(key)#
- 参数:
key – 字符串
- 返回类型:
返回字符串
key
的排序键。此函数执行与在默认构造的QCollator
对象上调用sortKey()
相同的操作。- ignorePunctuation()#
- 返回类型:
布尔值
返回在排序时是否忽略标点符号和符号。
当
true
时,字符串比较时会假定每个字符串中所有标点符号和符号都被移除。返回排序器的区域设置。
除非在构造函数中提供或者在调用
setLocale()
时指定,否则使用系统默认的排序区域设置。- numericMode()#
- 返回类型:
布尔值
如果启用数字排序,返回
true
,否则返回false
。当
true
时,数字被视为数值并按算术顺序排序;例如,100 排在 99 之后。当false
时,数字按词典顺序排序,因此 100 排在 99 之前(因为 1 在 9 之前)。默认情况下,此选项被禁用。- __call__(s1, s2)#
- 参数:
s1 – str
s2 – str
- 返回类型:
布尔值
QCollator
可以用作排序算法的比较函数。如果s1
排在s2
之前,则返回true
,否则返回false
。参阅
- __call__(s1, s2)
- 参数:
s1 – str
s2 – str
- 返回类型:
布尔值
这是一个重载的函数。
- setCaseSensitivity(cs)#
- 参数:
cs –
CaseSensitivity
将排序器的区域敏感度设置为
cs
。- setIgnorePunctuation(on)#
- 参数:
on – bool
如果
on
为true
,则忽略标点符号和符号;如果false
,则考虑这些符号。将排序器的区域设置为
locale
。参阅
- setNumericMode(on)#
- 参数:
on – bool
当
on
为true
时启用数字排序模式。- sortKey(string)#
- 参数:
字符串 - str
- 返回类型:
返回用于
string
的排序键。创建排序键通常比直接使用
compare()
方法要慢一些。但如果字符串需要反复比较(例如,在排序一整个字符串列表时),为每个字符串创建排序键然后使用键进行排序通常会更快。注意
在Darwin的C(也称为POSIX)区域设置下不支持。
与
other
交换此比较器。此函数非常快且永远不会失败。