Класс 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, используя системную языковую среду по умолчанию для сортировки.
Эта функция была добавлена в Qt 5.13.
См. также setLocale() и QLocale::collation().
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.1/qcollator.html