QCollator Class
La classe QCollator compare des chaînes de caractères selon un algorithme de classement localisé. En savoir plus...
| 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.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Comparaisons de QCollator
| Catégorie | Types comparables |
|---|---|
| égalité | QCollator |
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) |
Éléments non membres associés
(since 6.12) bool | operator!=(const QCollator &lhs, const QCollator &rhs) |
(since 6.12) bool | operator==(const QCollator &lhs, const QCollator &rhs) |
Description détaillée
QCollator est initialisé avec une chaîne de caractères ( 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 contenant des entrées d'QString.
QStringList sortedStrings(QStringList seq)
{
QCollator order;
std::sort(seq.begin(), seq.end(), order);
return seq;
}Outre la locale, plusieurs indicateurs optionnels peuvent être définis pour influencer le résultat du classement.
Implémentation de secours POSIX
Sur les systèmes Unix, Qt est normalement compilé pour utiliser ICU (sauf sous macOS, où Qt utilise par défaut une API Apple équivalente). Cependant, si ICU n’était pas disponible au moment de la compilation ou s’il a été explicitement désactivé, Qt utilisera un backend de secours qui utilise uniquement l’API POSIX. Ce backend présente plusieurs limitations :
- Seules les locales « QLocale::c » () et « QLocale::system » () sont prises en charge. Consultez les manuels POSIX et de la bibliothèque standard C concernant l’en-tête «
<locale.h>» pour plus d’informations sur la locale système. - caseSensitivity() n’est pas pris en charge : seul un classement sensible à la casse peut être effectué.
- 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 dans la sortie de l'application.
Documentation des fonctions membres
QCollator::QCollator()
Crée un objet `QCollator` en utilisant la locale de classement de la locale par défaut.
La locale système, lorsqu’elle est utilisée comme locale par défaut, peut avoir une locale de classement différente d’elle-même (par exemple sous Unix, si LC_COLLATE est défini différemment de LANG dans l’environnement). Toutes les autres locales ont pour locale de classement leur propre locale.
Voir également setLocale(), QLocale::collation() et QLocale::setDefault().
[explicit] QCollator::QCollator(const QLocale &locale)
Crée un objet QCollator à partir de l'locale fourni.
Voir aussi setLocale().
QCollator::QCollator(const QCollator &other)
Crée une copie de other.
[noexcept] QCollator::QCollator(QCollator &&other)
Constructeur de déplacement. Déplace les données de other vers ce collateur.
Remarque : l’objet d’origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l’affectation d’une nouvelle valeur.
[noexcept] QCollator::~QCollator()
Supprime ce trieur.
Qt::CaseSensitivity QCollator::caseSensitivity() const
Renvoie si le collateur tient compte de la casse.
Par défaut, le tri est sensible à la casse jusqu’à ce que cette option soit définie.
Remarque : dans la locale C, lorsque le tri est sensible à la casse, 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 sa correspondance majuscule. Ainsi, « Zap » est classé avant « ape » dans la locale C, mais après dans la plupart des autres locales.
Voir également setCaseSensitivity().
int QCollator::compare(QStringView s1, QStringView s2) const
Compare s1 à 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.
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 à 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 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 « s1 » et « s2 », et renvoie leur ordre de tri. Cette fonction effectue la même opération que la méthode compare() sur un objet QCollator construit par défaut.
Cette fonction a été introduite dans Qt 6.3.
Voir également 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 la méthode ` sortKey()` sur un objet ` QCollator ` construit par défaut.
Cette fonction a été introduite dans Qt 6.3.
Voir également sortKey() et defaultCompare().
bool QCollator::ignorePunctuation() const
Indique si la ponctuation et les symboles sont ignorés lors du classement.
Lorsque la valeur est true, les chaînes sont comparées comme si tous les signes de ponctuation et tous les symboles avaient été supprimés de chaque chaîne.
Voir aussi setIgnorePunctuation().
QLocale QCollator::locale() const
Renvoie les paramètres régionaux du collateur.
À moins qu'elle ne soit fournie au constructeur ou via l'appel à la fonction setLocale(), c'est la locale de collation par défaut du système qui est utilisée.
Voir également setLocale() et QLocale::collation().
bool QCollator::numericMode() const
Renvoie « true » si le tri numérique est activé, « false » dans le cas contraire.
Lorsque true, les chiffres sont reconnus comme des nombres et triés par ordre arithmétique ; par exemple, 100 vient après 99. Lorsque false, les nombres sont triés par ordre lexical, de sorte que 100 vient avant 99 (car 1 précède 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 sur « cs ».
Voir également caseSensitivity().
void QCollator::setIgnorePunctuation(bool on)
Ignore la ponctuation et les symboles si on est true; en tient compte si false.
Voir également ignorePunctuation().
void QCollator::setLocale(const QLocale &locale)
Définit les paramètres régionaux du collateur sur « locale ».
Voir également la fonction locale().
void QCollator::setNumericMode(bool on)
Active le mode de tri numérique lorsque la valeur de « on » est « true ».
Voir également 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()`. Cependant, 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, puis d’effectuer le tri à l’aide de ces clés.
Remarque : non pris en charge avec la locale C (également appelée POSIX) sous Darwin.
[noexcept] void QCollator::swap(QCollator &other)
Permet d'échanger ce collateur contre other. Cette opération est très rapide et ne rencontre jamais d'échec.
bool QCollator::operator()(QStringView s1, QStringView s2) const
Une fonction « QCollator » peut être utilisée comme fonction de comparaison dans un algorithme de tri. Elle renvoie true si s1 est trié avant s2, sinon false.
Voir également 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)
Cette opération attribue la valeur de other à cette instance de QCollator.
Remarque : l’objet d’origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l’affectation d’une nouvelle valeur.
QCollator &QCollator::operator=(const QCollator &other)
Attribue la valeur « other » à ce collateur.
Personnes associées non membres
[noexcept, since 6.12] bool operator!=(const QCollator &lhs, const QCollator &rhs)
[noexcept, since 6.12] bool operator==(const QCollator &lhs, const QCollator &rhs)
Renvoie « true » si « lhs » et « rhs » utilisent les mêmes options de locale et de classement ; sinon, renvoie « false ».
Ces fonctions ont été introduites dans Qt 6.12.
© 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.