- class QCollator#
The
QCollator
class compares strings according to a localized collation algorithm. More…Synopsis#
Methods#
def
__init__()
def
compare()
def
locale()
def
numericMode()
def
__call__()
def
setLocale()
def
setNumericMode()
def
sortKey()
def
swap()
Static functions#
def
defaultCompare()
def
defaultSortKey()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description#
Warning
This section contains snippets that were automatically translated from C++ to Python and may contain errors.
QCollator
is initialized with aQLocale
. It can then be used to compare and sort strings by using the ordering appropriate for that locale.A
QCollator
object can be used together with template-based sorting algorithms, such as std::sort(), to sort a list withQString
entries.def sortedStrings(seq): order = QCollator() std::sort(seq.begin(), seq.end(), order) return seq
In addition to the locale, several optional flags can be set that influence the result of the collation.
POSIX fallback implementation#
On Unix systems, Qt is normally compiled to use ICU (except for macOS, where Qt defaults to using an equivalent Apple API). However, if ICU was not available at compile time or explicitly disabled, Qt will use a fallback backend that uses the POSIX API only. This backend has several limitations:
Only the
c()
andsystem()
locales are supported. Consult the POSIX and C Standard Library manuals for the<locale.h>
header for more information on the system locale.caseSensitivity()
is not supported: only case-sensitive collation can be performed.numericMode()
andignorePunctuation()
are not supported.
The use of any of the unsupported options will cause a warning to be printed to the application’s output.
Creates a copy of
other
.- __init__(locale)
- Parameters:
locale –
QLocale
Constructs a
QCollator
using the givenlocale
.See also
- __init__()
Constructs a
QCollator
using the default locale’s collation locale.The system locale, when used as default locale, may have a collation locale other than itself (e.g. on Unix, if LC_COLLATE is set differently to LANG in the environment). All other locales are their own collation locales.
See also
- caseSensitivity()#
- Return type:
Returns case sensitivity of the collator.
This defaults to case-sensitive until set.
Note
In the C locale, when case-sensitive, all lower-case letters sort after all upper-case letters, where most locales sort each lower-case letter either immediately before or immediately after its upper-case partner. Thus “Zap” sorts before “ape” in the C locale but after in most others.
See also
- compare(s1, s2)#
- Parameters:
s1 – str
s2 – str
- Return type:
int
Compares
s1
withs2
.Returns a negative integer if
s1
is less thans2
, a positive integer if it is greater thans2
, and zero if they are equal.- compare(s1, len1, s2, len2)
- Parameters:
s1 –
QChar
len1 – int
s2 –
QChar
len2 – int
- Return type:
int
This is an overloaded function.
Compares
s1
withs2
.len1
andlen2
specify the lengths of theQChar
arrays pointed to bys1
ands2
.Returns a negative integer if
s1
is less thans2
, a positive integer if it is greater thans2
, and zero if they are equal.Note
In Qt versions prior to 6.4, the length arguments were of type
int
, notqsizetype
.- compare(s1, s2)
- Parameters:
s1 – str
s2 – str
- Return type:
int
This is an overloaded function.
- static defaultCompare(s1, s2)#
- Parameters:
s1 – str
s2 – str
- Return type:
int
Compares the strings
s1
ands2
, returning their sorting order. This function performs the same operation ascompare()
on a default-constructedQCollator
object.See also
- static defaultSortKey(key)#
- Parameters:
key – str
- Return type:
Returns the sort key for the string
key
. This function performs the same operation assortKey()
on a default-constructedQCollator
object.See also
- ignorePunctuation()#
- Return type:
bool
Returns whether punctuation and symbols are ignored when collating.
When
true
, strings are compared as if all punctuation and symbols were removed from each string.See also
Returns the locale of the collator.
Unless supplied to the constructor or by calling
setLocale()
, the system’s default collation locale is used.See also
- numericMode()#
- Return type:
bool
Returns
true
if numeric sorting is enabled,false
otherwise.When
true
, numerals are recognized as numbers and sorted in arithmetic order; for example, 100 sortes after 99. Whenfalse
, numbers are sorted in lexical order, so that 100 sorts before 99 (because 1 is before 9). By default, this option is disabled.See also
- __call__(s1, s2)#
- Parameters:
s1 – str
s2 – str
- Return type:
bool
A
QCollator
can be used as the comparison function of a sorting algorithm. It returnstrue
ifs1
sorts befores2
, otherwisefalse
.See also
- __call__(s1, s2)
- Parameters:
s1 – str
s2 – str
- Return type:
bool
This is an overloaded function.
- setCaseSensitivity(cs)#
- Parameters:
cs –
CaseSensitivity
Sets the case-sensitivity of the collator to
cs
.See also
- setIgnorePunctuation(on)#
- Parameters:
on – bool
Ignores punctuation and symbols if
on
istrue
, attends to them iffalse
.See also
Sets the locale of the collator to
locale
.See also
- setNumericMode(on)#
- Parameters:
on – bool
Enables numeric sorting mode when
on
istrue
.See also
- sortKey(string)#
- Parameters:
string – str
- Return type:
Returns a sortKey for
string
.Creating the sort key is usually somewhat slower, than using the
compare()
methods directly. But if the string is compared repeatedly (e.g. when sorting a whole list of strings), it’s usually faster to create the sort keys for each string and then sort using the keys.Note
Not supported with the C (a.k.a. POSIX) locale on Darwin.
Swaps this collator with
other
. This function is very fast and never fails.