QCollator Class
La classe QCollator compare les chaînes de caractères selon un algorithme de collationnement localisé. Plus d'informations...
| En-tête : | #include <QCollator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QCollator fait partie des Classes pour les données de type chaîne et des Classes implicitement partagées.
Note : Toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| QCollator() | |
| QCollator(const QLocale &locale) | |
| QCollator(const QCollator &other) | |
| QCollator(QCollator &&other) | |
| ~QCollator() | |
| Qt::CaseSensitivity | caseSensitivity() const |
| int | compare(QStringView s1, QStringView s2) const |
| int | compare(const QString &s1, const QString &s2) const |
| int | compare(const QChar *s1, qsizetype len1, const QChar *s2, qsizetype len2) const |
| bool | ignorePunctuation() const |
| QLocale | locale() const |
| bool | numericMode() const |
| void | setCaseSensitivity(Qt::CaseSensitivity cs) |
| void | setIgnorePunctuation(bool on) |
| void | setLocale(const QLocale &locale) |
| void | setNumericMode(bool on) |
| QCollatorSortKey | sortKey(const QString &string) const |
| void | swap(QCollator &other) |
| bool | operator()(QStringView s1, QStringView s2) const |
| bool | operator()(const QString &s1, const QString &s2) const |
| QCollator & | operator=(QCollator &&other) |
| QCollator & | operator=(const QCollator &other) |
Membres publics statiques
(since 6.3) int | defaultCompare(QStringView s1, QStringView s2) |
(since 6.3) QCollatorSortKey | defaultSortKey(QStringView key) |
Description détaillée
QCollator est initialisé avec une adresse QLocale. Il peut ensuite être utilisé pour comparer et trier des chaînes de caractères en utilisant l'ordre approprié pour cette locale.
Un objet QCollator peut être utilisé avec des algorithmes de tri basés sur des modèles, tels que std::sort(), pour trier une liste avec QString entrées.
QStringList sortedStrings(QStringList seq) { QCollator order; std::sort(seq.begin(), seq.end(), order); return seq; }
En plus de la locale, plusieurs drapeaux optionnels peuvent être définis pour influencer le résultat de la collation.
Implémentation de secours POSIX
Sur les systèmes Unix, Qt est normalement compilé pour utiliser ICU (sauf pour macOS, où Qt utilise par défaut une API Apple équivalente). Cependant, si ICU n'était pas disponible à la compilation ou explicitement désactivé, Qt utilisera un backend de secours qui utilise uniquement l'API POSIX. Ce backend a plusieurs limitations :
- Seules les locales QLocale::c() et QLocale::system() sont prises en charge. Consultez les manuels des bibliothèques POSIX et C standard pour l'en-tête
<locale.h>pour plus d'informations sur les paramètres linguistiques du système. - caseSensitivity() n'est pas pris en charge : seule la collation sensible à la casse peut être effectuée.
- numericMode() et ignorePunctuation() ne sont pas pris en charge.
L'utilisation de l'une des options non prises en charge entraînera l'affichage d'un avertissement sur la sortie de l'application.
Documentation des fonctions membres
QCollator::QCollator()
Construit un QCollator en utilisant la locale de collation par défaut.
La locale du système, lorsqu'elle est utilisée comme locale par défaut, peut avoir une locale de collation différente de la sienne (par exemple, sous Unix, si LC_COLLATE est défini différemment de LANG dans l'environnement). Toutes les autres locales sont leurs propres locales de collation.
Voir aussi setLocale(), QLocale::collation() et QLocale::setDefault().
[explicit] QCollator::QCollator(const QLocale &locale)
Construit un QCollator en utilisant l'adresse locale.
Voir aussi setLocale().
QCollator::QCollator(const QCollator &other)
Crée une copie de other.
[noexcept] QCollator::QCollator(QCollator &&other)
Constructeur de mouvements. Déplacement de other vers ce collateur.
Remarque : l'objet déplacé other est placé dans un état partiellement formé, dans lequel les seules opérations valables sont la destruction et l'attribution d'une nouvelle valeur.
[noexcept] QCollator::~QCollator()
Détruit ce collateur.
Qt::CaseSensitivity QCollator::caseSensitivity() const
Renvoie la sensibilité à la casse du collateur.
Par défaut, le collateur est sensible à la casse jusqu'à ce qu'il soit défini.
Remarque : dans la locale C, lorsque la sensibilité à la casse est respectée, toutes les lettres minuscules sont classées après toutes les lettres majuscules, alors que la plupart des locales classent chaque lettre minuscule soit immédiatement avant, soit immédiatement après son partenaire majuscule. Ainsi, "Zap" est classé avant "ape" dans la locale C, mais après dans la plupart des autres locales.
Voir aussi setCaseSensitivity().
int QCollator::compare(QStringView s1, QStringView s2) const
Compare s1 avec s2.
Renvoie un nombre entier négatif si s1 est inférieur à s2, un nombre entier positif s'il est supérieur à s2, et zéro s'ils sont égaux.
int QCollator::compare(const QString &s1, const QString &s2) const
Il s'agit d'une fonction surchargée.
int QCollator::compare(const QChar *s1, qsizetype len1, const QChar *s2, qsizetype len2) const
Compare s1 avec s2. len1 et len2 spécifient les longueurs des tableaux QChar pointés par s1 et s2.
Renvoie un entier négatif si s1 est inférieur à s2, un entier positif s'il est supérieur à s2, et zéro s'ils sont égaux.
Remarque : dans les versions de Qt XML antérieures à la version 6.4, les arguments de longueur étaient de type int, et non qsizetype.
Il s'agit d'une fonction surchargée.
[static, since 6.3] int QCollator::defaultCompare(QStringView s1, QStringView s2)
Compare les chaînes de caractères s1 et s2, en renvoyant leur ordre de tri. Cette fonction effectue la même opération que compare() sur un objet QCollator construit par défaut.
Cette fonction a été introduite dans Qt 6.3.
Voir aussi compare() et defaultSortKey().
[static, since 6.3] QCollatorSortKey QCollator::defaultSortKey(QStringView key)
Renvoie la clé de tri de la chaîne key. Cette fonction effectue la même opération que sortKey() sur un objet QCollator construit par défaut.
Cette fonction a été introduite dans Qt 6.3.
Voir aussi sortKey() et defaultCompare().
bool QCollator::ignorePunctuation() const
Retourne si la ponctuation et les symboles sont ignorés lors de l'assemblage.
Avec true, les chaînes sont comparées comme si tous les signes de ponctuation et les symboles avaient été supprimés de chaque chaîne.
Voir aussi setIgnorePunctuation().
QLocale QCollator::locale() const
Renvoie la locale du collateur.
Sauf si elle est fournie au constructeur ou en appelant setLocale(), la locale de collation par défaut du système est utilisée.
Voir aussi setLocale() et QLocale::collation().
bool QCollator::numericMode() const
Renvoie true si le tri numérique est activé, false sinon.
Lorsque true, les chiffres sont reconnus comme des nombres et triés dans l'ordre arithmétique ; par exemple, 100 est trié après 99. Avec false, les nombres sont triés dans l'ordre lexical, de sorte que 100 est trié avant 99 (parce que 1 est avant 9). Par défaut, cette option est désactivée.
Voir également setNumericMode().
void QCollator::setCaseSensitivity(Qt::CaseSensitivity cs)
Définit la sensibilité à la casse du collateur à cs.
Voir aussi caseSensitivity().
void QCollator::setIgnorePunctuation(bool on)
Ignore la ponctuation et les symboles si on est true, en tient compte si false.
Voir aussi ignorePunctuation().
void QCollator::setLocale(const QLocale &locale)
Définit la locale du collateur à locale.
Voir aussi locale().
void QCollator::setNumericMode(bool on)
Active le mode de tri numérique lorsque on est true.
Voir aussi numericMode().
QCollatorSortKey QCollator::sortKey(const QString &string) const
Renvoie une clé de tri pour string.
La création de la clé de tri est généralement un peu plus lente que l'utilisation directe des méthodes compare(). Mais si la chaîne est comparée à plusieurs reprises (par exemple, lors du tri d'une liste entière de chaînes), il est généralement plus rapide de créer les clés de tri pour chaque chaîne et de trier ensuite en utilisant les clés.
Note : Non supporté avec la locale C (a.k.a. POSIX) sur Darwin.
[noexcept] void QCollator::swap(QCollator &other)
Remplace ce collateur par other. Cette opération est très rapide et n'échoue jamais.
bool QCollator::operator()(QStringView s1, QStringView s2) const
Un QCollator peut être utilisé comme fonction de comparaison d'un algorithme de tri. Il renvoie true si s1 trie avant s2, sinon false.
Voir aussi compare().
bool QCollator::operator()(const QString &s1, const QString &s2) const
Il s'agit d'une fonction surchargée.
[noexcept] QCollator &QCollator::operator=(QCollator &&other)
Move-assigne other à cette instance QCollator.
Note : L'objet déplacé other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'attribution d'une nouvelle valeur.
QCollator &QCollator::operator=(const QCollator &other)
Attribue other à cet assembleur.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.