QLocale codeToTerritory работает только с двузначными кодами

Я хотел бы получить название страны для любых кодов стран ISO 3166. В моем проекте в настоящее время используются трехзначные коды, поэтому, если возможно, из этого. Согласно документации Qt, QLocale::countryToTerritory должен решить эту проблему, но в моих тестовых программах он работает только с двузначными кодами. Я также попробовал устаревшую функцию codeToCountry, но результат тот же. Также числовой код не имеет никакого результата.

Вот простая тестовая программа:

      #include <QCoreApplication>

#include <QLocale>
#include <QDebug>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString l2 = "DE";
    QString l3 = "DEU";
    QString d3 = "276";

    qDebug() << QLocale::codeToCountry(l2) << QLocale::codeToCountry(l3) << QLocale::codeToCountry(d3);
    qDebug() << QLocale::codeToTerritory(l2) << QLocale::codeToTerritory(l3) << QLocale::codeToTerritory(d3);

    return a.exec();
}

Результат:

      QLocale::Germany QLocale::AnyTerritory QLocale::AnyTerritory
QLocale::Germany QLocale::AnyTerritory QLocale::AnyTerritory

Я пробовал с несколькими разными странами, все с теми же результатами.

Я построил проект с Qt 6.3.0 с компилятором MSVC2019 для Windows.

Документация просто неверна, или я что-то упустил?

0 ответов

Другие вопросы по тегам