CComboBox oder QStringList mit deutschen Umlauten alphabetisch sortieren
-
Hallo,
wie können Strings mit deutschen Umlauten in einer QComboxBox alphabetisch sortiert werden?
Auch der Umweg über QStringList::sort() funktioniert leider nicht mit deutschen Umlauten. Es wird wie folgt sortiert:
Afganistan
Deutschland
England
ÄgyptenGewünscht ist aber:
Afganistan
Ägypten
Deutschland
EnglandWie wird in Qt eine Liste von Strings mit deutschen Umlauten am einfachsten sortiert?
-
Die Lösung: QStringList kann wie folgt sortiert werden:
#include "CStringList.h" inline bool SortLocaleAware(const QString &lhs, const QString &rhs) { return QString::localeAwareCompare(lhs, rhs) < 0; } void main() { QStringList StringList; StringList << "Deutschland"; StringList << "Ägypten"; StringList << "England"; StringList << "Afganistan"; std::sort(StringList.begin(), StringList.end(), SortLocaleAware); {
Mit QCombobox::adItems(QStringList) kann die ComboBox dann später mit alphabetisch richtig sortiertem Inhalt gefüllt werden.