En esta página

QCollator Class

La clase QCollator compara cadenas según un algoritmo de cotejo localizado. Más...

Cabecera: #include <QCollator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Nota: Todas las funciones de esta clase son reentrantes.

Funciones Públicas

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)

Miembros Públicos Estáticos

(since 6.3) int defaultCompare(QStringView s1, QStringView s2)
(since 6.3) QCollatorSortKey defaultSortKey(QStringView key)

Descripción Detallada

QCollator se inicializa con un QLocale. A continuación, se puede utilizar para comparar y ordenar cadenas utilizando el orden apropiado para esa configuración regional.

Un objeto QCollator puede utilizarse junto con algoritmos de ordenación basados en plantillas, como std::sort(), para ordenar una lista con QString entradas.

QStringList sortedStrings(QStringList seq)
{
    QCollator order;
    std::sort(seq.begin(), seq.end(), order);
    return seq;
}

Además de la configuración regional, se pueden establecer varios indicadores opcionales que influyen en el resultado de la intercalación.

Implementación POSIX fallback

En sistemas Unix, Qt se compila normalmente para usar ICU (excepto para macOS, donde Qt usa por defecto una API equivalente de Apple). Sin embargo, si ICU no estaba disponible en tiempo de compilación o estaba explícitamente deshabilitado, Qt utilizará un backend que sólo usa la API POSIX. Este backend tiene varias limitaciones:

  • Sólo se soportan las localizaciones QLocale::c() y QLocale::system(). Consulte los manuales de POSIX y C Standard Library para la cabecera <locale.h> para más información sobre la configuración regional del sistema.
  • caseSensitivity() no está soportado: sólo se puede realizar la intercalación sensible a mayúsculas y minúsculas.
  • numericMode() y ignorePunctuation() no son compatibles.

El uso de cualquiera de las opciones no soportadas provocará que se imprima una advertencia en la salida de la aplicación.

Documentación de las funciones miembro

QCollator::QCollator()

Construye un QCollator usando la configuración regional por defecto.

La configuración regional del sistema, cuando se usa como configuración regional predeterminada, puede tener una configuración regional de intercalación distinta de sí misma (por ejemplo, en Unix, si LC_COLLATE se establece de forma distinta a LANG en el entorno). Todas las demás configuraciones regionales son sus propias configuraciones regionales de intercalación.

Véase también setLocale(), QLocale::collation(), y QLocale::setDefault().

[explicit] QCollator::QCollator(const QLocale &locale)

Construye un QCollator usando la dirección locale.

Véase también setLocale().

QCollator::QCollator(const QCollator &other)

Crea una copia de other.

[noexcept] QCollator::QCollator(QCollator &&other)

Constructor de movimientos. Mueve desde other a este collator.

Nota: El objeto movido-desde other se coloca en un estado parcialmente formado, en el que las únicas operaciones válidas son la destrucción y la asignación de un nuevo valor.

[noexcept] QCollator::~QCollator()

Destruye este recopilador.

Qt::CaseSensitivity QCollator::caseSensitivity() const

Devuelve la distinción entre mayúsculas y minúsculas del intercalador.

Por defecto, distingue entre mayúsculas y minúsculas hasta que se establece.

Nota: En la configuración regional C, cuando se distingue entre mayúsculas y minúsculas, todas las letras minúsculas se ordenan después de todas las letras mayúsculas, mientras que en la mayoría de las configuraciones regionales cada letra minúscula se ordena inmediatamente antes o inmediatamente después de su compañera mayúscula. Así, "Zap" se ordena antes que "ape" en la configuración regional C, pero después en la mayoría de las demás.

Véase también setCaseSensitivity().

int QCollator::compare(QStringView s1, QStringView s2) const

Compara s1 con s2.

Devuelve un entero negativo si s1 es menor que s2, un entero positivo si es mayor que s2, y cero si son iguales.

int QCollator::compare(const QString &s1, const QString &s2) const

Se trata de una función sobrecargada.

int QCollator::compare(const QChar *s1, qsizetype len1, const QChar *s2, qsizetype len2) const

Compara s1 con s2. len1 y len2 especifican las longitudes de las matrices QChar apuntadas por s1 y s2.

Devuelve un entero negativo si s1 es menor que s2, un entero positivo si es mayor que s2, y cero si son iguales.

Nota: En versiones de Qt anteriores a la 6.4, los argumentos de longitud eran de tipo int, no qsizetype.

Se trata de una función sobrecargada.

[static, since 6.3] int QCollator::defaultCompare(QStringView s1, QStringView s2)

Compara las cadenas s1 y s2, devolviendo su orden de clasificación. Esta función realiza la misma operación que compare() en un objeto QCollator construido por defecto.

Esta función se introdujo en Qt 6.3.

Véase también compare() y defaultSortKey().

[static, since 6.3] QCollatorSortKey QCollator::defaultSortKey(QStringView key)

Devuelve la clave de ordenación de la cadena key. Esta función realiza la misma operación que sortKey() en un objeto QCollator construido por defecto.

Esta función se introdujo en Qt 6.3.

Véase también sortKey() y defaultCompare().

bool QCollator::ignorePunctuation() const

Devuelve si la puntuación y los símbolos se ignoran al cotejar.

Cuando se utiliza true, las cadenas se comparan como si se hubieran eliminado todos los signos de puntuación y símbolos de cada cadena.

Véase también setIgnorePunctuation().

QLocale QCollator::locale() const

Devuelve la configuración regional del intercalador.

A menos que se proporcione al constructor o mediante una llamada a setLocale(), se utiliza la configuración regional predeterminada del sistema.

Véase también setLocale() y QLocale::collation().

bool QCollator::numericMode() const

Devuelve true si la ordenación numérica está activada, false en caso contrario.

Cuando true, los números se reconocen como números y se ordenan en orden aritmético; por ejemplo, 100 se ordena después de 99. En false, los números se ordenan en orden léxico, de forma que 100 se ordena antes que 99 (porque 1 está antes que 9). Por defecto, esta opción está desactivada.

Véase también setNumericMode().

void QCollator::setCaseSensitivity(Qt::CaseSensitivity cs)

Establece la distinción entre mayúsculas y minúsculas del intercalador en cs.

Véase también caseSensitivity().

void QCollator::setIgnorePunctuation(bool on)

Ignora la puntuación y los símbolos si on es true, los tiene en cuenta si false.

Véase también ignorePunctuation().

void QCollator::setLocale(const QLocale &locale)

Establece la configuración regional del intercalador en locale.

Véase también locale().

void QCollator::setNumericMode(bool on)

Activa el modo de ordenación numérica cuando on es true.

Véase también numericMode().

QCollatorSortKey QCollator::sortKey(const QString &string) const

Devuelve una sortKey para string.

Crear la clave de ordenación suele ser algo más lento que utilizar directamente los métodos compare(). Pero si la cadena se compara repetidamente (por ejemplo, cuando se ordena toda una lista de cadenas), suele ser más rápido crear las claves de ordenación para cada cadena y luego ordenar usando las claves.

Nota: No es compatible con la configuración regional C (también conocida como POSIX) en Darwin.

[noexcept] void QCollator::swap(QCollator &other)

Cambia este colador por other. Esta operación es muy rápida y nunca falla.

bool QCollator::operator()(QStringView s1, QStringView s2) const

Un QCollator puede utilizarse como función de comparación de un algoritmo de ordenación. Devuelve true si s1 ordena antes que s2, en caso contrario false.

Véase también compare().

bool QCollator::operator()(const QString &s1, const QString &s2) const

Se trata de una función sobrecargada.

[noexcept] QCollator &QCollator::operator=(QCollator &&other)

Mover-asigna other a esta instancia QCollator.

Nota: El objeto movido-desde other se coloca en un estado parcialmente formado, en el que las únicas operaciones válidas son la destrucción y la asignación de un nuevo valor.

QCollator &QCollator::operator=(const QCollator &other)

Asigna other a esta intercaladora.

© 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.