Spec-Zone.ru › Qt

Класс QCollator

Класс QCollator сравнивает строки в соответствии с алгоритмом сортировки, локализованным для определенной языковой среды. Подробнее...

Заголовок: #include <QCollator>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
С тех пор: Qt 5.2
  • Список всех членов, включая унаследованные члены

Примечание: Все функции в этом классе являются повторно входящими.

Открытые функции

QCollator(QCollator &&other)
QCollator(const QCollator &other)
QCollator(const QLocale &locale)
QCollator()
QCollator & operator=(QCollator &&other)
QCollator & operator=(const 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, int len1, const QChar *s2, int 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 инициализируется с помощью QLocale. Затем он может использоваться для сравнения и сортировки строк, используя порядок, соответствующий локали.

Объект QCollator может использоваться вместе с алгоритмами сортировки на основе шаблонов, такими как std::sort(), для сортировки списка со строками QString.

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

В дополнение к локали могут быть установлены несколько дополнительных флагов, которые влияют на результат сортировки.

Примечание: В Linux Qt обычно компилируется с использованием ICU. Когда этого не происходит, все опции игнорируются, и поддерживаются только системные настройки по умолчанию (которые setlocale(LC_COLLATE, nullptr) бы сообщили) и локали "C".

Документация по функциям-членам

QCollator::QCollator(QCollator &&other)

Конструктор перемещения. Перемещает данные из other в данный коллатор.

Обратите внимание, что перемещённый QCollator можно только уничтожить или присвоить. Влияние вызова других функций, кроме деструктора или одного из операторов присваивания, не определено.

QCollator::QCollator(const QCollator &other)

Создаёт копию other.

QCollator::QCollator(const QLocale &locale)

Создаёт QCollator, используя заданную locale.

См. также setLocale().

[since 5.13] QCollator::QCollator()

Создаёт QCollator, используя локали сортировки по умолчанию.

Системная локали, используемая в качестве локали по умолчанию, может иметь локаль сортировки, отличную от самой себя (например, в Unix, если LC_COLLATE установлено иначе, чем LANG, в среде). Все другие локали являются своими локалями сортировки.

Эта функция была добавлена в Qt 5.13.

См. также setLocale(), QLocale::collation() и QLocale::setDefault().

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

Присваивает значение из other данному коллатору с использованием перемещения.

Обратите внимание, что перемещённый QCollator можно только уничтожить или присвоить. Влияние вызова других функций, кроме деструктора или одного из операторов присваивания, не определено.

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

Присваивает other данному коллатору.

QCollator::~QCollator()

Уничтожает этот коллатор.

Qt::CaseSensitivity QCollator::caseSensitivity() const

Возвращает чувствительность к регистру коллатора.

По умолчанию чувствителен к регистру до установки.

Примечание: В локали C, при чувствительности к регистру, все строчные буквы стоят после всех заглавных букв, тогда как в большинстве локалей каждая строчная буква либо непосредственно предшествует, либо непосредственно следует за своей заглавной парой. Таким образом, «Zap» сортируется перед «ape» в локали C, но после в большинстве других.

См. также setCaseSensitivity().

[since 5.13] int QCollator::compare(QStringView s1, QStringView s2) const

Сравнивает s1 с s2.

Возвращает целое число, меньшее, равное или большее нуля, в зависимости от того, предшествует ли s1, совпадает ли или следует ли s2.

Эта функция была добавлена в Qt 5.13.

[since 5.2] int QCollator::compare(const QString &s1, const QString &s2) const

Это перегруженная функция.

Эта функция была добавлена в Qt 5.2.

[since 5.2] int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) const

Это перегруженная функция.

Сравнивает s1 с s2. len1 и len2 указывают длины массивов QChar, на которые указывают s1 и s2 соответственно.

Возвращает целое число, меньшее, равное или большее нуля, в зависимости от того, предшествует ли s1, совпадает ли или следует ли s2.

Эта функция была добавлена в Qt 5.2.

bool QCollator::ignorePunctuation() const

Возвращает значение, указывающее, игнорируются ли знаки препинания и символы при сортировке.

Когда true, строки сравниваются так, как если бы из каждой строки были удалены все знаки препинания и символы.

См. также setIgnorePunctuation().

QLocale QCollator::locale() const

Возвращает локаль коллатора.

Если не задана при создании или при помощи вызова setLocale(), используется системная локали сортировки по умолчанию.

См. также setLocale() и QLocale::collation().

bool QCollator::numericMode() const

Возвращает true при включенном числовом сортировании, false в противном случае.

Когда true, цифры распознаются как числа и сортируются в арифметическом порядке; например, 100 идёт после 99. Когда false, числа сортируются в лексикографическом порядке, так что 100 идёт перед 99 (потому что 1 идёт перед 9). По умолчанию этот параметр отключен.

См. также setNumericMode().

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

Устанавливает чувствительность к регистру сортировщика на cs.

См. также caseSensitivity().

void QCollator::setIgnorePunctuation(bool on)

Игнорирует знаки препинания и символы, если on равно true, обращает на них внимание, если false.

См. также ignorePunctuation().

void QCollator::setLocale(const QLocale &locale)

Устанавливает локаль сортировщика на locale.

См. также locale().

void QCollator::setNumericMode(bool on)

Включает числовой режим сортировки, когда on равно true.

См. также numericMode().

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

Возвращает sortKey для string.

Создание ключа сортировки обычно немного медленнее, чем непосредственное использование методов compare(). Но если строка сравнивается многократно (например, при сортировке всего списка строк), обычно быстрее создать ключи сортировки для каждой строки и затем отсортировать их.

Примечание: Не поддерживается с локалью C (также известной как POSIX) на Darwin.

void QCollator::swap(QCollator &other)

Меняет местами этот сортировщик с other. Эта функция очень быстрая и никогда не терпит неудач.

[since 5.13] bool QCollator::operator()(QStringView s1, QStringView s2) const

Объект QCollator может использоваться в качестве функции сравнения алгоритма сортировки. Возвращает true если s1 идёт перед s2, в противном случае false.

Эта функция была введена в Qt 5.13.

См. также compare().

[since 5.2] bool QCollator::operator()(const QString &s1, const QString &s2) const

Это перегруженная функция.

Эта функция была введена в Qt 5.2.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qcollator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API