QLocale Class

QLocale 类可在各种语言的数字及其字符串表示之间进行转换。更多

头文件: #include <QLocale>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

该类可等价比较

注意:该类中的所有函数都是可重入的,但以下函数除外:

公共类型

enum Country { AnyCountry, AnyTerritory, Afghanistan, AlandIslands, Albania, …, Zimbabwe }
enum CurrencySymbolFormat { CurrencyIsoCode, CurrencySymbol, CurrencyDisplayName }
enum DataSizeFormat { DataSizeIecFormat, DataSizeTraditionalFormat, DataSizeSIFormat }
flags DataSizeFormats
enum FloatingPointPrecisionOption { FloatingPointShortest }
enum FormatType { LongFormat, ShortFormat, NarrowFormat }
enum Language { AnyLanguage, C, Abkhazian, Afan, Afar, …, Zulu }
enum LanguageCodeType { ISO639Part1, ISO639Part2B, ISO639Part2T, ISO639Part3, LegacyLanguageCode, …, AnyLanguageCode }
flags LanguageCodeTypes
enum MeasurementSystem { MetricSystem, ImperialUSSystem, ImperialUKSystem, ImperialSystem }
enum NumberOption { DefaultNumberOptions, OmitGroupSeparator, RejectGroupSeparator, OmitLeadingZeroInExponent, RejectLeadingZeroInExponent, …, RejectTrailingZeroesAfterDot }
flags NumberOptions
enum QuotationStyle { StandardQuotation, AlternateQuotation }
enum Script { AnyScript, AdlamScript, AhomScript, AnatolianHieroglyphsScript, ArabicScript, …, YiScript }
(since 6.7) enum class TagSeparator { Dash, Underscore }
Territory

公共函数

QLocale()
(since 6.3) QLocale(QStringView name)
QLocale(QLocale::Language language, QLocale::Territory territory)
QLocale(QLocale::Language language, QLocale::Script script = AnyScript, QLocale::Territory territory = AnyTerritory)
QLocale(const QString &name)
QLocale(const QLocale &other)
~QLocale()
QString amText() const
QString bcp47Name(QLocale::TagSeparator separator = TagSeparator::Dash) const
QLocale collation() const
QString createSeparatedList(const QStringList &list) const
QString currencySymbol(QLocale::CurrencySymbolFormat format = CurrencySymbol) const
QString dateFormat(QLocale::FormatType format = LongFormat) const
QString dateTimeFormat(QLocale::FormatType format = LongFormat) const
QString dayName(int day, QLocale::FormatType type = LongFormat) const
QString decimalPoint() const
QString exponential() const
Qt::DayOfWeek firstDayOfWeek() const
QString formattedDataSize(qint64 bytes, int precision = 2, QLocale::DataSizeFormats format = DataSizeIecFormat) const
QString groupSeparator() const
QLocale::Language language() const
QLocale::MeasurementSystem measurementSystem() const
QString monthName(int month, QLocale::FormatType type = LongFormat) const
QString name(QLocale::TagSeparator separator = TagSeparator::Underscore) const
QString nativeLanguageName() const
(since 6.2) QString nativeTerritoryName() const
QString negativeSign() const
QLocale::NumberOptions numberOptions() const
QString percent() const
QString pmText() const
QString positiveSign() const
QString quoteString(const QString &str, QLocale::QuotationStyle style = StandardQuotation) const
(since 6.0) QString quoteString(QStringView str, QLocale::QuotationStyle style = StandardQuotation) const
QLocale::Script script() const
void setNumberOptions(QLocale::NumberOptions options)
QString standaloneDayName(int day, QLocale::FormatType type = LongFormat) const
QString standaloneMonthName(int month, QLocale::FormatType type = LongFormat) const
void swap(QLocale &other)
(since 6.2) QLocale::Territory territory() const
Qt::LayoutDirection textDirection() const
QString timeFormat(QLocale::FormatType format = LongFormat) const
QString toCurrencyString(qlonglong value, const QString &symbol = QString()) const
QString toCurrencyString(int value, const QString &symbol = QString()) const
QString toCurrencyString(qulonglong value, const QString &symbol = QString()) const
QString toCurrencyString(short value, const QString &symbol = QString()) const
QString toCurrencyString(uint value, const QString &symbol = QString()) const
QString toCurrencyString(ushort value, const QString &symbol = QString()) const
QString toCurrencyString(double value, const QString &symbol = QString(), int precision = -1) const
QString toCurrencyString(float i, const QString &symbol = QString(), int precision = -1) const
QDate toDate(const QString &string, QLocale::FormatType format = LongFormat, int baseYear = DefaultTwoDigitBaseYear) const
QDate toDate(const QString &string, const QString &format, int baseYear = DefaultTwoDigitBaseYear) const
QDate toDate(const QString &string, QLocale::FormatType format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const
QDate toDate(const QString &string, const QString &format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const
QDateTime toDateTime(const QString &string, QLocale::FormatType format = LongFormat, int baseYear = DefaultTwoDigitBaseYear) const
QDateTime toDateTime(const QString &string, const QString &format, int baseYear = DefaultTwoDigitBaseYear) const
QDateTime toDateTime(const QString &string, QLocale::FormatType format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const
QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const
double toDouble(QStringView s, bool *ok = nullptr) const
double toDouble(const QString &s, bool *ok = nullptr) const
float toFloat(QStringView s, bool *ok = nullptr) const
float toFloat(const QString &s, bool *ok = nullptr) const
int toInt(QStringView s, bool *ok = nullptr) const
int toInt(const QString &s, bool *ok = nullptr) const
long toLong(QStringView s, bool *ok = nullptr) const
long toLong(const QString &s, bool *ok = nullptr) const
qlonglong toLongLong(QStringView s, bool *ok = nullptr) const
qlonglong toLongLong(const QString &s, bool *ok = nullptr) const
QString toLower(const QString &str) const
short toShort(QStringView s, bool *ok = nullptr) const
short toShort(const QString &s, bool *ok = nullptr) const
QString toString(qlonglong i) const
QString toString(QDate date, const QString &format) const
QString toString(QTime time, QLocale::FormatType format = LongFormat) const
QString toString(QTime time, QStringView format) const
QString toString(QTime time, const QString &format) const
QString toString(const QDateTime &dateTime, const QString &format) const
QString toString(QDate date, QLocale::FormatType format, QCalendar cal) const
QString toString(QDate date, QStringView format, QCalendar cal) const
QString toString(const QDateTime &dateTime, QLocale::FormatType format, QCalendar cal) const
QString toString(const QDateTime &dateTime, QStringView format, QCalendar cal) const
QString toString(int i) const
QString toString(long i) const
QString toString(qulonglong i) const
QString toString(short i) const
QString toString(uint i) const
QString toString(ulong i) const
QString toString(ushort i) const
QString toString(QDate date, QLocale::FormatType format = LongFormat) const
QString toString(QDate date, QStringView format) const
QString toString(const QDateTime &dateTime, QLocale::FormatType format = LongFormat) const
QString toString(const QDateTime &dateTime, QStringView format) const
QString toString(double f, char format = 'g', int precision = 6) const
QString toString(float f, char format = 'g', int precision = 6) const
QTime toTime(const QString &string, QLocale::FormatType format = LongFormat) const
QTime toTime(const QString &string, const QString &format) const
uint toUInt(QStringView s, bool *ok = nullptr) const
uint toUInt(const QString &s, bool *ok = nullptr) const
ulong toULong(QStringView s, bool *ok = nullptr) const
ulong toULong(const QString &s, bool *ok = nullptr) const
qulonglong toULongLong(QStringView s, bool *ok = nullptr) const
qulonglong toULongLong(const QString &s, bool *ok = nullptr) const
ushort toUShort(QStringView s, bool *ok = nullptr) const
ushort toUShort(const QString &s, bool *ok = nullptr) const
QString toUpper(const QString &str) const
QStringList uiLanguages(QLocale::TagSeparator separator = TagSeparator::Dash) const
QList<Qt::DayOfWeek> weekdays() const
QString zeroDigit() const
QLocale &operator=(const QLocale &other)

静态公共成员

(since 6.7) const int DefaultTwoDigitBaseYear
QLocale c()
(since 6.3) QLocale::Language codeToLanguage(QStringViewlanguageCode, QLocale::LanguageCodeTypescodeTypes= AnyLanguageCode)
(since 6.1) QLocale::Script codeToScript(QStringViewscriptCode)
(since 6.2) QLocale::Territory codeToTerritory(QStringViewterritoryCode)
(since 6.3) QString languageToCode(QLocale::Languagelanguage, QLocale::LanguageCodeTypescodeTypes= AnyLanguageCode)
QString languageToString(QLocale::Language 语)
QList<QLocale matchingLocales(QLocale::Language语言, QLocale::Script脚本, QLocale::Territory领土)
(since 6.1) QString scriptToCode(QLocale::Script脚本)
QString scriptToString(QLocale::脚本脚本)
void setDefault(const QLocale&locale)
QLocale system()
(since 6.2) QString territoryToCode(QLocale::Territory territoryterritory)
(since 6.2) QString territoryToString(QLocale::领土领地)
size_t qHash(const QLocale &key, size_t seed = 0)
bool operator!=(const QLocale &lhs, const QLocale &rhs)
bool operator==(const QLocale &lhs, const QLocale &rhs)

详细说明

QLocale 是为指定语言、可选脚本和地域而构建的。它提供了多种功能,可将数据格式化为文本,进行适当的本地化,以及从本地化文本中读取数据。

举例说明

QLocale egyptian(QLocale::Arabic, QLocale::Egypt);
QString s1 = egyptian.toString(1.571429E+07, 'e');
QString s2 = egyptian.toString(10);

double d = egyptian.toDouble(s1);
int i = egyptian.toInt(s2);

QLocale 支持默认本地化概念,默认本地化由应用程序启动时的系统本地化设置决定。默认 locale 可通过调用静态成员setDefault() 进行更改。设置默认 locale 会产生以下影响:

  • 如果使用默认构造函数构造 QLocale 对象,它将使用默认 locale 设置。
  • QString::arg当数字在格式字符串中的位置标注包含 "L"(如"%L1")时,QLocale()将使用默认的locale来格式化数字。

下面的示例说明了如何直接使用 QLocale:

bool ok;
double d;

QLocale::setDefault(QLocale::C);      // uses '.' as a decimal point
QLocale cLocale;                      // default-constructed C locale
d = cLocale.toDouble("1234,56", &ok); // ok == false, d == 0
d = cLocale.toDouble("1234.56", &ok); // ok == true,  d == 1234.56

QLocale::setDefault(QLocale::German); // uses ',' as a decimal point
QLocale german;                       // default-constructed German locale
d = german.toDouble("1234,56", &ok);  // ok == true,  d == 1234.56
d = german.toDouble("1234.56", &ok);  // ok == false, d == 0

QLocale::setDefault(QLocale::English);
// Default locale now uses ',' as a group separator.
QString str = QString("%1 %L2 %L3").arg(12345).arg(12345).arg(12345, 0, 16);
// str == "12345 12,345 3039"

另一种构造 QLocale 对象的方法是指定本地名称。

QLocale korean("ko");
QLocale swiss("de_CH");

该构造函数从给定的名称中读取语言、脚本和/或地区,接受 uderscore 或破折号作为分隔符(并忽略任何尾部.codeset@variant 后缀)。

注: 有关当前的键盘输入语言,请访问QInputMethod::locale() 。

格式的适当性

QLocale 的数据基于 Common Locale Data Repository v46.1。

该数据由 Unicode Consortium 发布,其目的是遵循每种语言、每种文字、每个地区的作者在提供数据时的习惯和常用做法。在某些情况下,这可能与官方认可的标准不同,这取决于官方标准在实践中被广泛采用的程度。

例如,虽然相关的国际标准(来自 BIPM)规定,在数字中,当数字被分割以帮助阅读时,数字组之间的分隔符是一个不间断的细空格,并且许多司法管辖区已将其作为数字格式的官方标准,但许多地方实际上采用传统的数字格式,用标点符号分隔数字组。CLDR 以及 QLocale 遵循的是这种常见用法,而不是官方标准。

语言、文字和地域的匹配组合

QLocale 具有从 CLDR 派生的数据,可用于语言、文字和地区的许多组合,但不是所有组合。如果在构建时指定了所有这三个关键值(将AnyLanguageAnyScriptAnyTerritory 视为未指定),并且 QLocale 有给定组合的数据,则会使用这些数据。否则,QLocale 会尽力寻找语言、文字和地域的合理组合,因为 QLocale 拥有与指定组合相匹配的数据。

CLDR 提供了可能的组合表,用来填补任何未指定的关键字;如果 QLocale 有这种可能组合结果的数据,就会使用这些数据。如果没有指定语言,也无法从脚本和地域确定语言,或者 QLocale 没有语言数据,则使用 "C "语言(从字符串读取键时)或默认语言(其他情况下)。

如果 QLocale 没有指定键的数据(未指定的键可能已填入),但有结果语言的数据,则会根据忽略地域、脚本或两者(按此顺序)的原则寻找后备方案。这样得到的 QLocale 可能与要求的不一致,但会根据指定的关键字,在可用数据允许的范围内提供合适的本地化。

请使用language(),script() 和territory() 来确定实际使用的键值。

另请参阅 QString::arg() 和QInputMethod::locale()。

成员类型文档

enum QLocale::Country

这种枚举类型用于标识地域。

单个领土可以是一个国家的一个省、一个国家(目前最常见的情况)或一个更大的地理实体,其中某些本地化细节是特定的。

常数说明
QLocale::AnyCountryAnyTerritoryOsbolete 的别名AnyTerritory
QLocale::AnyTerritory (since Qt 6.2)0
QLocale::Afghanistan1
QLocale::AlandIslands2
QLocale::Albania3
QLocale::Algeria4
QLocale::AmericanSamoa5
QLocale::Andorra6
QLocale::Angola7
QLocale::Anguilla8
QLocale::Antarctica9
QLocale::AntiguaAndBarbuda10
QLocale::Argentina11
QLocale::Armenia12
QLocale::Aruba13
QLocale::AscensionIsland14
QLocale::Australia15
QLocale::Austria16
QLocale::Azerbaijan17
QLocale::Bahamas18
QLocale::Bahrain19
QLocale::Bangladesh20
QLocale::Barbados21
QLocale::Belarus22
QLocale::Belgium23
QLocale::Belize24
QLocale::Benin25
QLocale::Bermuda26
QLocale::Bhutan27
QLocale::Bolivia28
QLocale::BonaireCaribbeanNetherlands
QLocale::BosniaAndHerzegowinaBosniaAndHerzegovina已过时,请使用BosniaAndHerzegovina 代替
QLocale::BosniaAndHerzegovina (since Qt 6.0)29
QLocale::Botswana30
QLocale::BouvetIsland31
QLocale::Brazil32
QLocale::BritishIndianOceanTerritory33
QLocale::BritishVirginIslands34
QLocale::Brunei35
QLocale::Bulgaria36
QLocale::BurkinaFaso37
QLocale::Burundi38
QLocale::Cambodia39
QLocale::Cameroon40
QLocale::Canada41
QLocale::CanaryIslands42
QLocale::CaribbeanNetherlands44
QLocale::CapeVerde43
QLocale::CaymanIslands45
QLocale::CentralAfricanRepublic46
QLocale::CeutaAndMelilla47
QLocale::Chad48
QLocale::Chile49
QLocale::China50
QLocale::ChristmasIsland51
QLocale::ClippertonIsland52
QLocale::CocosIslands53
QLocale::Colombia54
QLocale::Comoros55
QLocale::CongoBrazzaville56
QLocale::CongoKinshasa57
QLocale::CookIslands58
QLocale::CostaRica59
QLocale::Croatia60
QLocale::Cuba61
QLocale::Curacao (since Qt 6.0)62
QLocale::CuraSaoCuracao已过时,请使用Curacao 代替
QLocale::Cyprus63
QLocale::Czechia (since Qt 6.0)64
QLocale::CzechRepublicCzechia已过时,请使用Czechia
QLocale::DemocraticRepublicOfCongoCongoKinshasa已过时,请使用CongoKinshasa
QLocale::DemocraticRepublicOfKoreaNorthKorea已过时,请使用NorthKorea
QLocale::Denmark65
QLocale::DiegoGarcia66
QLocale::Djibouti67
QLocale::Dominica68
QLocale::DominicanRepublic69
QLocale::EastTimorTimorLeste
QLocale::Ecuador70
QLocale::Egypt71
QLocale::ElSalvador72
QLocale::EquatorialGuinea73
QLocale::Eritrea74
QLocale::Estonia75
QLocale::Eswatini76
QLocale::Ethiopia77
QLocale::EuropeanUnion (since Qt 5.7)79
QLocale::Europe (since Qt 5.12)78
QLocale::FalklandIslands80
QLocale::FaroeIslands81
QLocale::Fiji82
QLocale::Finland83
QLocale::France84
QLocale::FrenchGuiana85
QLocale::FrenchPolynesia86
QLocale::FrenchSouthernTerritories87
QLocale::Gabon88
QLocale::Gambia89
QLocale::Georgia90
QLocale::Germany91
QLocale::Ghana92
QLocale::Gibraltar93
QLocale::Greece94
QLocale::Greenland95
QLocale::Grenada96
QLocale::Guadeloupe97
QLocale::Guam98
QLocale::Guatemala99
QLocale::Guernsey100
QLocale::Guinea102
QLocale::GuineaBissau101
QLocale::Guyana103
QLocale::Haiti104
QLocale::HeardAndMcDonaldIslands105
QLocale::Honduras106
QLocale::HongKong107
QLocale::Hungary108
QLocale::Iceland109
QLocale::India110
QLocale::Indonesia111
QLocale::Iran112
QLocale::Iraq113
QLocale::Ireland114
QLocale::IsleOfMan115
QLocale::Israel116
QLocale::Italy117
QLocale::IvoryCoast118
QLocale::Jamaica119
QLocale::Japan120
QLocale::Jersey121
QLocale::Jordan122
QLocale::Kazakhstan123
QLocale::Kenya124
QLocale::Kiribati125
QLocale::Kosovo (since Qt 5.2)126
QLocale::Kuwait127
QLocale::Kyrgyzstan128
QLocale::Laos129
QLocale::LatinAmerica130
QLocale::LatinAmericaAndTheCaribbeanLatinAmerica已过时,请使用LatinAmerica 代替
QLocale::Latvia131
QLocale::Lebanon132
QLocale::Lesotho133
QLocale::Liberia134
QLocale::Libya135
QLocale::Liechtenstein136
QLocale::Lithuania137
QLocale::Luxembourg138
QLocale::Macao139
QLocale::MacauMacao
QLocale::Macedonia140
QLocale::Madagascar141
QLocale::Malawi142
QLocale::Malaysia143
QLocale::Maldives144
QLocale::Mali145
QLocale::Malta146
QLocale::MarshallIslands147
QLocale::Martinique148
QLocale::Mauritania149
QLocale::Mauritius150
QLocale::Mayotte151
QLocale::Mexico152
QLocale::Micronesia153
QLocale::Moldova154
QLocale::Monaco155
QLocale::Mongolia156
QLocale::Montenegro157
QLocale::Montserrat158
QLocale::Morocco159
QLocale::Mozambique160
QLocale::Myanmar161
QLocale::Namibia162
QLocale::NauruCountryNauruTerritoryOsbolete 的别名NauruTerritory
QLocale::NauruTerritory (since Qt 6.2)163
QLocale::Nepal164
QLocale::Netherlands165
QLocale::NewCaledonia166
QLocale::NewZealand167
QLocale::Nicaragua168
QLocale::Niger170
QLocale::Nigeria169
QLocale::Niue171
QLocale::NorfolkIsland172
QLocale::NorthernMarianaIslands173
QLocale::NorthKorea174
QLocale::Norway175
QLocale::Oman176
QLocale::OutlyingOceania (since Qt 5.7)177
QLocale::Pakistan178
QLocale::Palau179
QLocale::PalestinianTerritories180
QLocale::Panama181
QLocale::PapuaNewGuinea182
QLocale::Paraguay183
QLocale::PeoplesRepublicOfCongoCongoBrazzaville已过时,请使用CongoBrazzaville 代替
QLocale::Peru184
QLocale::Philippines185
QLocale::Pitcairn186
QLocale::Poland187
QLocale::Portugal188
QLocale::PuertoRico189
QLocale::Qatar190
QLocale::RepublicOfKoreaSouthKorea已过时,请使用SouthKorea 代替
QLocale::Reunion191
QLocale::Romania192
QLocale::RussianFederationRussia
QLocale::Russia193
QLocale::Rwanda194
QLocale::SaintBarthelemy195
QLocale::SaintHelena196
QLocale::SaintKittsAndNevis197
QLocale::SaintLucia198
QLocale::SaintMartin199
QLocale::SaintPierreAndMiquelon200
QLocale::SaintVincentAndGrenadines201
QLocale::SaintVincentAndTheGrenadinesSaintVincentAndGrenadines
QLocale::Samoa202
QLocale::SanMarino203
QLocale::SaoTomeAndPrincipe204
QLocale::SaudiArabia205
QLocale::Senegal206
QLocale::Serbia207
QLocale::Seychelles208
QLocale::SierraLeone209
QLocale::Singapore210
QLocale::SintMaarten211
QLocale::Slovakia212
QLocale::Slovenia213
QLocale::SolomonIslands214
QLocale::Somalia215
QLocale::SouthAfrica216
QLocale::SouthGeorgiaAndSouthSandwichIslands217
QLocale::SouthGeorgiaAndTheSouthSandwichIslandsSouthGeorgiaAndSouthSandwichIslands
QLocale::SouthKorea218
QLocale::SouthSudan219
QLocale::Spain220
QLocale::SriLanka221
QLocale::Sudan222
QLocale::Suriname223
QLocale::SvalbardAndJanMayen224
QLocale::SvalbardAndJanMayenIslandsSvalbardAndJanMayen
QLocale::SwazilandEswatini
QLocale::Sweden225
QLocale::Switzerland226
QLocale::Syria227
QLocale::SyrianArabRepublicSyria已过时,请使用Syria
QLocale::Taiwan228
QLocale::Tajikistan229
QLocale::Tanzania230
QLocale::Thailand231
QLocale::TimorLeste232
QLocale::Togo233
QLocale::TokelauCountryTokelauTerritoryOsbolete 的别名TokelauTerritory
QLocale::TokelauTerritory (since Qt 6.2)234
QLocale::Tonga235
QLocale::TrinidadAndTobago236
QLocale::TristanDaCunha237
QLocale::Tunisia238
QLocale::Turkey239
QLocale::Turkmenistan240
QLocale::TurksAndCaicosIslands241
QLocale::TuvaluCountryTuvaluTerritoryOsbolete 的别名TuvaluTerritory
QLocale::TuvaluTerritory (since Qt 6.2)242
QLocale::Uganda243
QLocale::Ukraine244
QLocale::UnitedArabEmirates245
QLocale::UnitedKingdom246
QLocale::UnitedStates248
QLocale::UnitedStatesOutlyingIslands247
QLocale::UnitedStatesMinorOutlyingIslandsUnitedStatesOutlyingIslands
QLocale::UnitedStatesVirginIslands249
QLocale::Uruguay250
QLocale::Uzbekistan251
QLocale::Vanuatu252
QLocale::VaticanCity253
QLocale::VaticanCityStateVaticanCity
QLocale::Venezuela254
QLocale::Vietnam255
QLocale::WallisAndFutuna256
QLocale::WallisAndFutunaIslandsWallisAndFutuna
QLocale::WesternSahara257
QLocale::World (since Qt 5.12)258
QLocale::Yemen259
QLocale::Zambia260
QLocale::Zimbabwe261

注: 该枚举尽可能使用领土别名。国家枚举将在以后的版本中更名为领土枚举。

另请参阅 territory()、territoryToString()、codeToTerritory() 和territoryToCode()。

enum QLocale::CurrencySymbolFormat

指定货币符号的格式。

常数说明
QLocale::CurrencyIsoCode0货币的 ISO-4217 代码。
QLocale::CurrencySymbol1货币符号。
QLocale::CurrencyDisplayName2用户可读的货币名称。

enum QLocale::DataSizeFormat
flags QLocale::DataSizeFormats

指定数据量的表示格式。

常量说明
QLocale::DataSizeIecFormat0使用基 1024 和 IEC 前缀的格式:KiB、MiB、GiB、...
QLocale::DataSizeTraditionalFormatDataSizeSIQuantifiers使用基 1024 和 SI 前缀的格式:kB、MB、GB、...
QLocale::DataSizeSIFormatDataSizeBase1000 | DataSizeSIQuantifiers使用基 1000 和 SI 前缀的格式:kB、MB、GB、...

DataSizeFormats 类型是QFlags<DataSizeFormat> 的类型定义。它存储 DataSizeFormat 值的 OR 组合。

另请参阅 formattedDataSize().

enum QLocale::FloatingPointPrecisionOption

该枚举定义了一个常量,在转换浮点数或二进制数时,可将其作为QString::number(),QByteArray::number(), 和QLocale::toString() 的精度,以表达不同位数的精度。

常数说明
QLocale::FloatingPointShortest-128转换算法将尝试为给定的数字找到最短的精确表示。"准确 "是指在生成的字符串表示法上进行反向转换后得到的数字完全相同。在指数格式中,尾数的零会被省略。

另请参阅 toString()、QString::number() 和QByteArray::number()。

enum QLocale::FormatType

该枚举描述了将QDateQTimeQDateTime 对象以及月和日转换为特定于本地的字符串时可使用的不同格式。

常量描述
QLocale::LongFormat0较长格式。
QLocale::ShortFormat1较短格式。
QLocale::NarrowFormat2在空间非常有限的情况下使用的特殊版本。

注意: NarrowFormat 可能包含不同月份和日期的相同文本。如果本地语言不支持窄名,它甚至可能是空字符串,因此应避免将其用于日期格式化。此外,对于系统本地语言,该格式与ShortFormat 相同。

另请参阅 dateFormat(),timeFormat(),dateTimeFormat(),monthName(),standaloneMonthName(),dayName(),standaloneDayName(),toDate(),toTime() 和toDateTime().

enum QLocale::Language

该枚举类型用于指定语言。

常量语言
QLocale::AnyLanguage0
QLocale::C1简体中文语言;请参阅QLocale::c()
QLocale::Abkhazian2
QLocale::AfanOromo已过时,请使用奥罗莫语
QLocale::Afar3
QLocale::Afrikaans4
QLocale::Aghem5
QLocale::Akan6
QLocale::Akkadian (since Qt 5.1)7
QLocale::Akoose (since Qt 5.3)8
QLocale::Albanian9
QLocale::AmericanSignLanguage (since Qt 5.7)10
QLocale::Amharic11
QLocale::AncientEgyptian (since Qt 5.1)12
QLocale::AncientGreek (since Qt 5.1)13
QLocale::Anii (since Qt 6.7)341
QLocale::Arabic14
QLocale::Aragonese (since Qt 5.1)15
QLocale::Aramaic (since Qt 5.1)16
QLocale::Armenian17
QLocale::Assamese18
QLocale::Asturian19
QLocale::Asu20
QLocale::Atsam21
QLocale::Avaric22
QLocale::Avestan23
QLocale::Aymara24
QLocale::Azerbaijani25
QLocale::Bafia26
QLocale::Balinese (since Qt 5.1)27
QLocale::Baluchi (since Qt 6.6)337
QLocale::Bambara28
QLocale::Bamun (since Qt 5.1)29
QLocale::Bangla (since Qt 6.0)30
QLocale::Basaa31
QLocale::Bashkir32
QLocale::Basque33
QLocale::BatakToba (since Qt 5.1)34
QLocale::Belarusian35
QLocale::Bemba36
QLocale::Bena37
QLocale::BengaliBangla已过时,请使用孟加拉语
QLocale::Bhojpuri (since Qt 5.7)38
QLocale::BhutaniDzongkha已过时,请使用宗卡语
QLocale::Bislama39
QLocale::Blin40
QLocale::Bodo41
QLocale::Bosnian42
QLocale::Breton43
QLocale::Buginese (since Qt 5.1)44
QLocale::Bulgarian45
QLocale::Burmese46
QLocale::ByelorussianBelarusian已过时,请使用白俄罗斯语
QLocale::CambodianKhmer已过时,请使用高棉语
QLocale::Cantonese (since Qt 5.7)47
QLocale::Catalan48
QLocale::Cebuano (since Qt 5.14)49
QLocale::CentralAtlasTamazight (since Qt 6.0)50
QLocale::CentralKurdish (since Qt 5.5)51
QLocale::CentralMoroccoTamazightCentralAtlasTamazight已过时,请使用 CentralAtlasTamazight
QLocale::Chakma (since Qt 5.1)52
QLocale::Chamorro53
QLocale::Chechen54
QLocale::Cherokee55
QLocale::ChewaNyanja已过时,请使用 Nyanja
QLocale::Chickasaw (since Qt 5.14)56
QLocale::Chiga57
QLocale::Chinese58(普通话)
QLocale::Church59
QLocale::Chuvash60
QLocale::Colognian61
QLocale::Coptic (since Qt 5.1)62
QLocale::Cornish63
QLocale::Corsican64
QLocale::Cree65
QLocale::Croatian66
QLocale::Czech67
QLocale::Danish68
QLocale::Divehi69
QLocale::Dogri (since Qt 5.1)70
QLocale::Duala71
QLocale::Dutch72
QLocale::Dzongkha73
QLocale::Embu74
QLocale::English75
QLocale::Erzya (since Qt 5.14)76
QLocale::Esperanto77
QLocale::Estonian78
QLocale::Ewe79
QLocale::Ewondo80
QLocale::Faroese81
QLocale::Fijian82
QLocale::Filipino83
QLocale::Finnish84
QLocale::French85
QLocale::FrisianWesternFrisian与西弗里斯兰语相同
QLocale::Friulian86
QLocale::Fulah87
QLocale::Ga89
QLocale::Gaelic88
QLocale::Galician90
QLocale::Ganda91
QLocale::Geez92
QLocale::Georgian93
QLocale::German94
QLocale::Gothic (since Qt 5.1)95
QLocale::Greek96
QLocale::GreenlandicKalaallisut已过时,请使用 Kalaallisut
QLocale::Guarani97
QLocale::Gujarati98
QLocale::Gusii99
QLocale::Haitian100
QLocale::Haryanvi (since Qt 6.5)330
QLocale::Hausa101
QLocale::Hawaiian102
QLocale::Hebrew103
QLocale::Herero104
QLocale::Hindi105
QLocale::HiriMotu106
QLocale::Hungarian107
QLocale::Icelandic108
QLocale::Ido (since Qt 5.12)109
QLocale::Igbo110
QLocale::InariSami (since Qt 5.5)111
QLocale::Indonesian112
QLocale::Ingush (since Qt 5.1)113
QLocale::Interlingua114
QLocale::Interlingue115
QLocale::Inuktitut116
QLocale::InupiakInupiaq已过时,请使用伊努皮亚克语
QLocale::Inupiaq (since Qt 6.0)117
QLocale::Irish118
QLocale::Italian119
QLocale::Japanese120
QLocale::Javanese121
QLocale::Jju122
QLocale::JolaFonyi123
QLocale::Kabuverdianu124
QLocale::Kabyle125
QLocale::Kaingang (since Qt 6.3)328
QLocale::Kako126
QLocale::Kalaallisut (since Qt 6.0)127
QLocale::Kalenjin128
QLocale::Kamba129
QLocale::Kangri (since Qt 6.7)342
QLocale::Kannada130
QLocale::Kanuri131
QLocale::KaraKalpak (since Qt 6.9)345
QLocale::Kashmiri132
QLocale::Kazakh133
QLocale::Kenyang (since Qt 5.5)134
QLocale::Khmer135
QLocale::Kiche (since Qt 5.5)136
QLocale::Kikuyu137
QLocale::Kinyarwanda138
QLocale::KirghizKyrgyz已过时,请使用吉尔吉斯语
QLocale::Komi139
QLocale::Kongo140
QLocale::Konkani141
QLocale::Korean142
QLocale::Koro143
QLocale::KoyraboroSenni144
QLocale::KoyraChiini145
QLocale::Kpelle146
QLocale::Kuanyama (since Qt 6.0)147
QLocale::Kurdish148
QLocale::KurundiRundi已过时,请使用 Rundi
QLocale::Kuvi (since Qt 6.8)344
QLocale::KwanyamaKuanyama已过时,请使用宽山语
QLocale::Kwasio149
QLocale::Kyrgyz (since Qt 6.0)150
QLocale::Lakota (since Qt 5.3)151
QLocale::Langi152
QLocale::Lao153
QLocale::Latin154
QLocale::Latvian155
QLocale::Lezghian (since Qt 5.5)156
QLocale::Limburgish157
QLocale::Lingala158
QLocale::Ligurian (since Qt 6.6)338
QLocale::LiteraryChinese (since Qt 5.7)159
QLocale::Lithuanian160
QLocale::Lojban (since Qt 5.12)161
QLocale::LowerSorbian (since Qt 5.5)162
QLocale::LowGerman163
QLocale::LubaKatanga164
QLocale::LuleSami (since Qt 5.5)165
QLocale::Luo166
QLocale::Luxembourgish167
QLocale::Luyia168
QLocale::Macedonian169
QLocale::Machame170
QLocale::Maithili (since Qt 5.5)171
QLocale::MakhuwaMeetto172
QLocale::Makonde173
QLocale::Malagasy174
QLocale::Malay176
QLocale::Malayalam175
QLocale::Maltese177
QLocale::Mandingo (since Qt 5.1)178
QLocale::Manipuri (since Qt 5.1)179
QLocale::Manx180
QLocale::Maori181
QLocale::Mapuche (since Qt 5.5)182
QLocale::Marathi183
QLocale::Marshallese184
QLocale::Masai185
QLocale::Mazanderani (since Qt 5.7)186
QLocale::Mende (since Qt 5.5)187
QLocale::Meru188
QLocale::Meta189
QLocale::Mohawk (since Qt 5.5)190
QLocale::Moksha (since Qt 6.5)333
QLocale::Mongolian191
QLocale::Morisyen192
QLocale::Mundang193
QLocale::Muscogee (since Qt 5.14)194
QLocale::Nama195
QLocale::NauruLanguage196
QLocale::NavahoNavajo已过时,请使用纳瓦霍语
QLocale::Navajo (since Qt 6.0)197
QLocale::Ndonga198
QLocale::Nepali199
QLocale::Newari (since Qt 5.7)200
QLocale::Ngiemboon201
QLocale::Nheengatu (since Qt 6.3)329
QLocale::NigerianPidgin (since Qt 6.0)203
QLocale::Ngomba202
QLocale::Nko (since Qt 5.5)204
QLocale::NorthernFrisian (since Qt 6.5)331
QLocale::NorthernLuri (since Qt 5.7)205
QLocale::NorthernSami206
QLocale::NorthernSotho207
QLocale::NorthNdebele208
QLocale::NorwegianBokmal209
QLocale::NorwegianNynorsk210
QLocale::Nuer211
QLocale::Nyanja212
QLocale::Nyankole213
QLocale::Obolo (since Qt 6.5)336
QLocale::Occitan214
QLocale::Odia (since Qt 6.0)215
QLocale::Ojibwa216
QLocale::OldIrish (since Qt 5.1)217
QLocale::OldNorse (since Qt 5.1)218
QLocale::OldPersian (since Qt 5.1)219
QLocale::OriyaOdia已过时,请使用奥迪亚语
QLocale::Oromo220
QLocale::Osage (since Qt 5.7)221
QLocale::Ossetic222
QLocale::Pahlavi (since Qt 5.1)223
QLocale::Palauan (since Qt 5.7)224
QLocale::Pali225
QLocale::Papiamento (since Qt 5.7)226
QLocale::Pashto227
QLocale::Persian228
QLocale::Phoenician (since Qt 5.1)229
QLocale::Pijin (since Qt 6.5)335
QLocale::Polish230
QLocale::Portuguese231
QLocale::Prussian (since Qt 5.5)232
QLocale::Punjabi233
QLocale::Quechua234
QLocale::Rajasthani (since Qt 6.5)332
QLocale::RhaetoRomanceRomansh已过时,请使用罗曼语
QLocale::Rohingya (since Qt 6.6)339
QLocale::Romanian235
QLocale::Romansh236
QLocale::Rombo237
QLocale::Rundi238
QLocale::Russian239
QLocale::Rwa240
QLocale::Saho241
QLocale::Sakha242
QLocale::Samburu243
QLocale::Samoan244
QLocale::Sango245
QLocale::Sangu246
QLocale::Sanskrit247
QLocale::Santali (since Qt 5.1)248
QLocale::Sardinian249
QLocale::Saurashtra (since Qt 5.1)250
QLocale::Sena251
QLocale::Serbian252
QLocale::Shambala253
QLocale::Shona254
QLocale::SichuanYi255
QLocale::Sicilian (since Qt 5.12)256
QLocale::Sidamo257
QLocale::Silesian (since Qt 5.14)258
QLocale::Sindhi259
QLocale::Sinhala260
QLocale::SkoltSami (since Qt 5.5)261
QLocale::Slovak262
QLocale::Slovenian263
QLocale::Soga264
QLocale::Somali265
QLocale::SouthernKurdish (since Qt 5.12)266
QLocale::SouthernSami (since Qt 5.5)267
QLocale::SouthernSotho268
QLocale::SouthNdebele269
QLocale::Spanish270
QLocale::StandardMoroccanTamazight (since Qt 5.3)271
QLocale::Sundanese272
QLocale::Swahili273
QLocale::SwampyCree (since Qt 6.9)346
QLocale::Swati274
QLocale::Swedish275
QLocale::SwissGerman276
QLocale::Syriac277
QLocale::Tachelhit278
QLocale::Tahitian279
QLocale::TaiDam (since Qt 5.1)280
QLocale::Taita281
QLocale::Tajik282
QLocale::Tamil283
QLocale::Taroko284
QLocale::Tasawaq285
QLocale::Tatar286
QLocale::Telugu287
QLocale::Teso288
QLocale::Thai289
QLocale::Tibetan290
QLocale::Tigre291
QLocale::Tigrinya292
QLocale::TokelauLanguage (since Qt 5.7)293
QLocale::TokiPona (since Qt 6.5)334
QLocale::TokPisin (since Qt 5.7)294
QLocale::Tongan295
QLocale::Torwali (since Qt 6.6)340
QLocale::Tsonga296
QLocale::Tswana297
QLocale::Turkish298
QLocale::Turkmen299
QLocale::TuvaluLanguage (since Qt 5.7)300
QLocale::Tyap301
QLocale::Ugaritic (since Qt 5.1)302
QLocale::UighurUyghur已过时,请使用维吾尔语
QLocale::UigurUyghur已过时,请使用维吾尔语
QLocale::Ukrainian303
QLocale::UpperSorbian (since Qt 5.5)304
QLocale::Urdu305
QLocale::Uyghur (since Qt 6.0)306
QLocale::Uzbek307
QLocale::Vai308
QLocale::Venda309
QLocale::Venetian (since Qt 6.7)343
QLocale::Vietnamese310
QLocale::Volapuk311
QLocale::Vunjo312
QLocale::WalamoWolaytta已过时,请使用沃莱塔语
QLocale::Walloon313
QLocale::Walser314
QLocale::Warlpiri (since Qt 5.5)315
QLocale::Welsh316
QLocale::WesternBalochi (since Qt 5.12)317
QLocale::WesternFrisian318与弗里斯兰语相同
QLocale::Wolaytta (since Qt 6.0)319
QLocale::Wolof320
QLocale::Xhosa321
QLocale::Yangben322
QLocale::Yiddish323
QLocale::Yoruba324
QLocale::Zarma325
QLocale::Zhuang326
QLocale::Zulu327

另请参阅 language() 和languageToString()。

枚举 QLocale::LanguageCodeType
flags QLocale::LanguageCodeTypes

该枚举定义了语言代码类型,可用于限制codeToLanguagelanguageToCode 所考虑的语言代码集。

常量描述
QLocale::ISO639Part11 << 0ISO 639 第 1 部分 Alpha 2 编码。
QLocale::ISO639Part2B1 << 1ISO 639 第 2 部分书目字母 3 代码。
QLocale::ISO639Part2T1 << 2ISO 639 第 2 部分术语 Alpha 3 代码。
QLocale::ISO639Part31 << 3ISO 639 第 3 部分 Alpha 3 代码。
QLocale::LegacyLanguageCode1 << 15不属于上述代码集,但 Qt 过去支持的代码。该值只能由codeToLanguage() 使用。传递给languageToCode() 时将被忽略。
QLocale::ISO639Part2ISO639Part2B | ISO639Part2T任何 ISO 639 第 2 部分代码。
QLocale::ISO639Alpha2ISO639Part1任何 ISO-639 2 字母代码。
QLocale::ISO639Alpha3ISO639Part2 | ISO639Part3任何 ISO-639 3 字母代码。
QLocale::ISO639ISO639Alpha2 | ISO639Alpha3任何 ISO 639 编码。
QLocale::AnyLanguageCode-1指定可以使用任何代码。

LanguageCodeTypes 类型是QFlags<LanguageCodeType> 的类型定义。它存储语言代码类型值的 OR 组合。

enum QLocale::MeasurementSystem

该枚举定义了用于测量的单位。

常数说明
QLocale::MetricSystem0该值表示公制单位,如基于国际单位制的米、厘米和毫米。
QLocale::ImperialUSSystem1该值表示英制单位,如美国使用的英寸和英里。
QLocale::ImperialUKSystem2该值表示英制单位,如英国使用的英寸和英里。
QLocale::ImperialSystemImperialUSSystem提供兼容性。与 ImperialUSSystem 相同

枚举 QLocale::NumberOption
flags QLocale::NumberOptions

该枚举定义了一组用于数字到字符串和字符串到数字转换的选项。它们可以通过numberOptions() 获取,也可以通过setNumberOptions() 设置。

常量说明
QLocale::DefaultNumberOptions0x0该选项代表除 C 语言之外的所有本地语言的默认行为,即使用分组分隔符、在个位数指数中使用一个前导零,以及在小数部分末尾不使用尾零(如果存在)。
QLocale::OmitGroupSeparator0x01如果设置了该选项,数到字符串函数将不会将数字分成组。C 语言区默认设置此选项。所有其他本地语言的默认设置是在数字的整数部分将数字分成若干组,并使用组分隔符。
QLocale::RejectGroupSeparator0x02如果设置了该选项,字符串转换为数字的函数在输入中遇到分组分隔符时就会失败。默认情况是接受包含正确分组分隔符的数字。
QLocale::OmitLeadingZeroInExponent0x04如果设置了该选项,在以科学计数法打印浮点数时,数字到字符串函数将不会用零填充指数。默认值是在个位数指数前加一个零。
QLocale::RejectLeadingZeroInExponent0x08如果设置了该选项,字符串转换为数字的函数在解析科学计数法浮点数时,如果遇到指数前缀为零的情况,就会失败。默认情况下接受这种填充。
QLocale::IncludeTrailingZeroesAfterDot0x10如果设置了该选项,在 "g "或 "最简洁 "模式下,数字到字符串函数将按照要求的精度对数字进行零填充。缺省值是省略尾部的零,这可能会使小数部分的位数少于所要求的精度。
QLocale::RejectTrailingZeroesAfterDot0x20如果设置了该选项,字符串转数字函数在解析科学数或十进制数时,如果在小数部分末尾遇到尾数零,就会失败。默认情况下接受尾数零。

NumberOptions 类型是QFlags<NumberOption> 的类型定义。它存储 NumberOption 值的 OR 组合。

另请参阅 setNumberOptions(),numberOptions() 和FloatingPointPrecisionOption

enum QLocale::QuotationStyle

该枚举定义了一组特定于本地语言的可能引号样式。

常数说明
QLocale::StandardQuotation0如果设置了该选项,将使用标准引号引用字符串。
QLocale::AlternateQuotation1如果设置了该选项,将使用备用引号引用字符串。

另请参阅 quoteString().

enum QLocale::Script

该枚举类型用于指定脚本。

常量说明
QLocale::AnyScript0
QLocale::AdlamScript (since Qt 5.7)1
QLocale::AhomScript (since Qt 5.7)2
QLocale::AnatolianHieroglyphsScript (since Qt 5.7)3
QLocale::ArabicScript4
QLocale::ArmenianScript5
QLocale::AvestanScript (since Qt 5.1)6
QLocale::BalineseScript (since Qt 5.1)7
QLocale::BamumScript (since Qt 5.1)8
QLocale::BanglaScript (since Qt 6.0)9
QLocale::BassaVahScript (since Qt 5.5)10
QLocale::BatakScript (since Qt 5.1)11
QLocale::BengaliScriptBanglaScript已过时,请使用 BanglaScript
QLocale::BhaiksukiScript (since Qt 5.7)12
QLocale::BopomofoScript (since Qt 5.1)13
QLocale::BrahmiScript (since Qt 5.1)14
QLocale::BrailleScript (since Qt 5.1)15
QLocale::BugineseScript (since Qt 5.1)16
QLocale::BuhidScript (since Qt 5.1)17
QLocale::CanadianAboriginalScript (since Qt 5.1)18
QLocale::CarianScript (since Qt 5.1)19
QLocale::CaucasianAlbanianScript (since Qt 5.5)20
QLocale::ChakmaScript (since Qt 5.1)21
QLocale::ChamScript (since Qt 5.1)22
QLocale::CherokeeScript23
QLocale::CopticScript (since Qt 5.1)24
QLocale::CuneiformScript (since Qt 5.1)25
QLocale::CypriotScript (since Qt 5.1)26
QLocale::CyrillicScript27
QLocale::DeseretScript (since Qt 5.1)28
QLocale::DevanagariScript29
QLocale::DuployanScript (since Qt 5.5)30
QLocale::EgyptianHieroglyphsScript (since Qt 5.1)31
QLocale::ElbasanScript (since Qt 5.5)32
QLocale::EthiopicScript33
QLocale::FraserScript (since Qt 5.1)34
QLocale::GeorgianScript35
QLocale::GlagoliticScript (since Qt 5.1)36
QLocale::GothicScript (since Qt 5.1)37
QLocale::GranthaScript (since Qt 5.5)38
QLocale::GreekScript39
QLocale::GujaratiScript40
QLocale::GurmukhiScript41
QLocale::HangulScript (since Qt 5.1)42
QLocale::HanifiScript (since Qt 6.6)142
QLocale::HanScript (since Qt 5.1)43
QLocale::HanunooScript (since Qt 5.1)44
QLocale::HanWithBopomofoScript (since Qt 5.7)45
QLocale::HatranScript (since Qt 5.7)46
QLocale::HebrewScript47
QLocale::HiraganaScript (since Qt 5.1)48
QLocale::ImperialAramaicScript (since Qt 5.1)49
QLocale::InscriptionalPahlaviScript (since Qt 5.1)50
QLocale::InscriptionalParthianScript (since Qt 5.1)51
QLocale::JamoScript (since Qt 5.7)52
QLocale::JapaneseScript53
QLocale::JavaneseScript (since Qt 5.1)54
QLocale::KaithiScript (since Qt 5.1)55
QLocale::KannadaScript56
QLocale::KatakanaScript (since Qt 5.1)57
QLocale::KayahLiScript (since Qt 5.1)58
QLocale::KharoshthiScript (since Qt 5.1)59
QLocale::KhmerScript (since Qt 5.1)60
QLocale::KhojkiScript (since Qt 5.5)61
QLocale::KhudawadiScript (since Qt 5.5)62
QLocale::KoreanScript63
QLocale::LannaScript (since Qt 5.1)64
QLocale::LaoScript65
QLocale::LatinScript66
QLocale::LepchaScript (since Qt 5.1)67
QLocale::LimbuScript (since Qt 5.1)68
QLocale::LinearAScript (since Qt 5.5)69
QLocale::LinearBScript (since Qt 5.1)70
QLocale::LycianScript (since Qt 5.1)71
QLocale::LydianScript (since Qt 5.1)72
QLocale::MahajaniScript (since Qt 5.5)73
QLocale::MalayalamScript74
QLocale::MandaeanScript (since Qt 5.1)75
QLocale::ManichaeanScript (since Qt 5.5)76
QLocale::MarchenScript (since Qt 5.7)77
QLocale::MeiteiMayekScript (since Qt 5.1)78
QLocale::MendeScript (since Qt 6.0)79
QLocale::MendeKikakuiScriptMendeScript已过时,请使用 MendeScript
QLocale::MeroiticCursiveScript (since Qt 5.1)80
QLocale::MeroiticScript (since Qt 5.1)81
QLocale::ModiScript (since Qt 5.5)82
QLocale::MongolianScript83
QLocale::MroScript (since Qt 5.5)84
QLocale::MultaniScript (since Qt 5.7)85
QLocale::MyanmarScript86
QLocale::NabataeanScript (since Qt 5.5)87
QLocale::NewaScript (since Qt 5.7)88
QLocale::NewTaiLueScript (since Qt 5.1)89
QLocale::NkoScript (since Qt 5.1)90
QLocale::OghamScript (since Qt 5.1)92
QLocale::OlChikiScript (since Qt 5.1)93
QLocale::OldHungarianScript (since Qt 5.7)94
QLocale::OldItalicScript (since Qt 5.1)95
QLocale::OldNorthArabianScript (since Qt 5.5)96
QLocale::OldPermicScript (since Qt 5.5)97
QLocale::OldPersianScript (since Qt 5.1)98
QLocale::OldSouthArabianScript (since Qt 5.1)99
QLocale::OdiaScript (since Qt 6.0)91
QLocale::OriyaScriptOdiaScript已过时,请使用 OdiaScript
QLocale::OrkhonScript (since Qt 5.1)100
QLocale::OsageScript (since Qt 5.7)101
QLocale::OsmanyaScript (since Qt 5.1)102
QLocale::PahawhHmongScript (since Qt 5.5)103
QLocale::PalmyreneScript (since Qt 5.5)104
QLocale::PauCinHauScript (since Qt 5.5)105
QLocale::PhagsPaScript (since Qt 5.1)106
QLocale::PhoenicianScript (since Qt 5.1)107
QLocale::PollardPhoneticScript (since Qt 5.1)108
QLocale::PsalterPahlaviScript (since Qt 5.5)109
QLocale::RejangScript (since Qt 5.1)110
QLocale::RunicScript (since Qt 5.1)111
QLocale::SamaritanScript (since Qt 5.1)112
QLocale::SaurashtraScript (since Qt 5.1)113
QLocale::SharadaScript (since Qt 5.1)114
QLocale::ShavianScript (since Qt 5.1)115
QLocale::SiddhamScript (since Qt 5.5)116
QLocale::SignWritingScript (since Qt 5.7)117
QLocale::SimplifiedChineseScriptSimplifiedHanScript与简体中文相同
QLocale::SimplifiedHanScript118与简体中文相同
QLocale::SinhalaScript119
QLocale::SoraSompengScript (since Qt 5.1)120
QLocale::SundaneseScript (since Qt 5.1)121
QLocale::SylotiNagriScript (since Qt 5.1)122
QLocale::SyriacScript123
QLocale::TagalogScript (since Qt 5.1)124
QLocale::TagbanwaScript (since Qt 5.1)125
QLocale::TaiLeScript (since Qt 5.1)126
QLocale::TaiVietScript (since Qt 5.1)127
QLocale::TakriScript (since Qt 5.1)128
QLocale::TamilScript129
QLocale::TangutScript (since Qt 5.7)130
QLocale::TeluguScript131
QLocale::ThaanaScript132
QLocale::ThaiScript133
QLocale::TibetanScript134
QLocale::TifinaghScript135
QLocale::TirhutaScript (since Qt 5.5)136
QLocale::TraditionalChineseScriptTraditionalHanScript与 TraditionalHanScript 相同
QLocale::TraditionalHanScript137与繁体中文相同
QLocale::UgariticScript (since Qt 5.1)138
QLocale::VaiScript139
QLocale::VarangKshitiScript (since Qt 5.5)140
QLocale::YiScript141

另请参见 script(),scriptToString(), 和languageToString()。

[since 6.7] enum class QLocale::TagSeparator

说明如何组合构成地域标识符的各个部分。

一个地域标识符可能由几个标签组成,分别表示语言、文字和地域(可能还包括其他细节),然后组合在一起形成标识符。各种标准和传统形式使用破折号(Unicode HYPHEN-MINUS,U+002D)或下划线(LOW LINE,U+005F)。因此,QLocale 的不同客户端可能需要使用其中一种。

常数说明
QLocale::TagSeparator::Dash'-'使用'-' ,破折号或连字符。
QLocale::TagSeparator::Underscore'_'使用'_' ,下划线字符。

注意: 虽然破折号和下划线是公共标准中唯一使用的分隔符(截至 2023 年),但如果需要非标准ASCII分隔符,可以将任何 ASCII 字符转换为该类型。不支持将非 ASCII 字符(十进制值大于 127)转换为该类型:如果某些公共标准使用了非 ASCII 分隔符,这些值将保留给将来作为枚举成员使用。当然,也可以使用QString::replace() 以任意 Unicode 字符或字符串替换接收该类型参数的函数所使用的分隔符。

此枚举在 Qt 6.7 中引入。

[alias] QLocale::Territory

该枚举类型是Country 的别名,将在以后的版本中更名为 Territory。

另请参阅 territory() 和territoryToString()。

成员函数文档

QLocale::QLocale()

构造一个用默认语言初始化的 QLocale 对象。

如果没有使用setDefault() 设置默认语言,该语言将与system() 返回的语言相同。

另请参阅 setDefault() 和system()。

[explicit, since 6.3] QLocale::QLocale(QStringView name)

用指定的name 构建一个 QLocale 对象。

名称格式为 "language[_script][_territory][.codeset][@modifier]"或 "C",其中

  • language 是小写的双字母 ISO 639 语言代码(也可识别某些三字母代码)、
  • script 是大写、四个字母的 ISO 15924 文字编码、
  • 领土是大写、两个字母的 ISO 3166 领土代码(也可识别某些数字代码),以及
  • 代码集和修饰符将被忽略。

分隔符可以是下划线'_' (U+005F,"低线")或破折号'-' (U+002D,"连字符减号")。如果 QLocale 没有指定语言、脚本和地域组合的数据,那么它会使用能找到的最合适的匹配。如果字符串违反了本地化格式,或者没有为指定的键找到合适的数据,则会使用 "C "本地化。

该构造函数比 QLocale(Language, Script, Territory) 或 QLocale(Language, Territory) 要慢得多。

该函数在 Qt 6.3 中引入。

另请参阅 bcp47Name() 和Matching combinations of language, script and territory

QLocale::QLocale(QLocale::Language language, QLocale::Territory territory)

为指定的languageterritory 构建一个 QLocale 对象。

如果该组合有多个脚本在使用,将选择一个可能的脚本。如果 QLocale 没有指定language 的数据,则使用默认的本地语言。如果 QLocale 没有指定的languageterritory 组合的数据,则可能使用另一个地域。

另请参阅 setDefault() 和Matching combinations of language, script and territory

QLocale::QLocale(QLocale::Language language, QLocale::Script script = AnyScript, QLocale::Territory territory = AnyTerritory)

为指定的languagescriptterritory 构建一个 QLocale 对象。

如果 QLocale 没有给定组合的数据,它会尽可能找到匹配的数据。如果

  • language 是 ,且无法从 推断出任何语言,以及AnyLanguage script territory
  • QLocale 没有该语言的数据,要么如language 所给,要么如上所述推断。

另请参阅 setDefault() 和Matching combinations of language, script and territory

[explicit] QLocale::QLocale(const QString &name)

这是一个重载函数。

[noexcept] QLocale::QLocale(const QLocale &other)

构造一个 QLocale 对象,作为other 的副本。

[noexcept] QLocale::~QLocale()

销毁器

QString QLocale::amText() const

对于使用 12 小时时钟习惯指定的时间,返回 "AM "后缀的本地化名称。

另请参阅 pmText()。

QString QLocale::bcp47Name(QLocale::TagSeparator separator = TagSeparator::Dash) const

返回用破折号连接的 BCP47 字段名。

这将尽可能多的语言、脚本和地域(可能还有其他 BCP47 字段)组合在一起,以便唯一地指定该语言、脚本和地域。请注意,如果统一码联盟的Likely Subtag Rules 在保留这些字段时暗示要省略这些字段,则可以省略这些字段。如果需要其他格式,请参阅name() 了解如何从单个字段构建字符串。

uiLanguages() 不同的是,bcp47Name() 返回的值代表QLocale 数据的本地名称;它不必是用户界面应使用的语言。

该函数试图使本地名称符合 RFC 5646 中定义的 IETF 最佳通用实践 47。自 Qt 6.7 起,它支持一个可选的separator 参数,该参数可用于覆盖 BCP47 规定的使用连字符来分隔标记。不过,在 IETF 定义的协议中使用时,应保留默认值QLocale::TagSeparator::Dash

另请参阅 name(),language(),territory(),script() 和uiLanguages().

[static] QLocale QLocale::c()

返回初始化为 "C "语言的QLocale 对象。

该语言基于 en_US,但也有自己的一些特点,如简化的数字格式和自己的日期格式。它实现了描述 "C "编程语言标准库函数行为的 POSIX 标准。

除其他外,这意味着它的排序顺序是基于字母的 ASCII 值,因此(对于大小写敏感排序)所有大写字母排序在任何小写字母之前(而不是每个字母的大写和小写形式相邻排序在下一个字母的两种形式之前)。

另请参见 system()。

[static noexcept, since 6.3] QLocale::Language QLocale::codeToLanguage(QStringView languageCode, QLocale::LanguageCodeTypes codeTypes = AnyLanguageCode)

返回与 ISO 639 标准中定义的双字母或三字母languageCode 对应的QLocale::Language 枚举。

如果指定,codeTypes 将选择转换时要考虑的代码集。默认情况下,Qt 将考虑所有已知代码。代码按以下顺序匹配:ISO639Part1,ISO639Part2B,ISO639Part2T,ISO639Part3,LegacyLanguageCode

如果代码无效或未知,则返回QLocale::AnyLanguage

此函数在 Qt 6.3 中引入。

另请参阅 languageToCode()、codeToTerritory() 和codeToScript()。

[static noexcept, since 6.1] QLocale::Script QLocale::codeToScript(QStringView scriptCode)

根据 ISO 15924 标准的定义,返回与四字母脚本scriptCode 对应的QLocale::Script 枚举。

如果代码无效或未知,则返回QLocale::AnyScript

此函数在 Qt 6.1 中引入。

另请参阅 scriptToCode()、codeToLanguage() 和codeToTerritory()。

[static noexcept, since 6.2] QLocale::Territory QLocale::codeToTerritory(QStringView territoryCode)

根据 ISO 3166 标准的定义,返回与两位字母或三位数字territoryCode 对应的QLocale::Territory 枚举。

如果代码无效或未知,则返回QLocale::AnyTerritory

此函数在 Qt 6.2 中引入。

另请参阅 territoryToCode()、codeToLanguage() 和codeToScript()。

QLocale QLocale::collation() const

返回校对时使用的本地语言。

结果通常是本 locale;但是,系统 locale(通常是默认 locale)将返回系统校对 locale。结果适合传递给QCollator 的构造函数。

另请参阅 QCollator

QString QLocale::createSeparatedList(const QStringList &list) const

返回一个字符串,该字符串表示用 locale 定义的分隔符连接给定list 的字符串。

QString QLocale::currencySymbol(QLocale::CurrencySymbolFormat format = CurrencySymbol) const

根据format 返回货币符号。

QString QLocale::dateFormat(QLocale::FormatType format = LongFormat) const

返回当前本地使用的日期格式。

如果formatLongFormat ,格式将是详细的,否则将是简短的。例如,en_US locale 的LongFormatdddd, MMMM d, yyyyShortFormatM/d/yy

另请参阅 QDate::toString() 和QDate::fromString()。

QString QLocale::dateTimeFormat(QLocale::FormatType format = LongFormat) const

返回当前本地使用的日期时间格式。

如果formatLongFormat ,格式将是详细的,否则将是简短的。例如,en_US locale 的LongFormatdddd, MMMM d, yyyy h:mm:ss AP tShortFormatM/d/yy h:mm AP

另请参阅 QDateTime::toString() 和QDateTime::fromString()。

QString QLocale::dayName(int day, QLocale::FormatType type = LongFormat) const

返回day 的本地化名称(其中 1 代表星期一,2 代表星期二,依此类推),格式由type 指定。

例如,如果 locale 为en_USday 为 1,LongFormat 将返回Monday,ShortFormat Mon , 以及NarrowFormat M

另请参阅 monthName() 和standaloneDayName()。

QString QLocale::decimalPoint() const

返回该语言的小数部分分隔符。

这是在表示有小数部分的数字时,用来分隔整数部分和小数部分的标记。它通常被称为 "小数点字符",尽管在许多地方,它并不是一个 "点"(或类似的点)。它(自 Qt 6.0 起)以字符串的形式返回,以防某些地区需要一个以上的 UTF-16 代码点来表示其分隔符。

另请参阅 groupSeparator() 和toString()。

QString QLocale::exponential() const

返回该语言的指数分隔符。

这是一个标记,用于在某些浮点数字表示法中分隔尾数和指数。它(自 Qt 6.0 起)以字符串形式返回,因为在某些语言中,它不是一个单独的字符,例如,它可能由乘号和 "十到幂 "运算符的表示形式组成。

另请参阅 toString (double、char、int)。

Qt::DayOfWeek QLocale::firstDayOfWeek() const

根据当前地区返回一周的第一天。

QString QLocale::formattedDataSize(qint64 bytes, int precision = 2, QLocale::DataSizeFormats format = DataSizeIecFormat) const

将以字节为单位的大小转换为人类可读的本地化字符串,其中包括一个数字和一个量化单位。选择量化单位时,数字至少为 1,且越小越好。例如,如果bytes 是 16384,precision 是 2,formatDataSizeIecFormat (默认值),则该函数返回 "16.00 KiB";如果是 1330409069609 字节,则返回 "1.21 GiB";以此类推。如果formatDataSizeIecFormatDataSizeTraditionalFormat ,给定字节数除以 1024 的幂,结果小于 1024;如果是DataSizeSIFormat ,则除以 1000 的幂,结果小于 1000。DataSizeIecFormat 使用新的 IEC 标准量词 Ki、Mi 等,而DataSizeSIFormat 使用旧的 SI 量词 k、M 等,DataSizeTraditionalFormat 则滥用了这些量词。

QString QLocale::groupSeparator() const

返回此本地语言的数字分组分隔符。

这是一个标记,用于在表示数字时分割长数字序列,使数字更容易读取。在某些本地语言中,它可能是空的,表示不应该用这种方式将数字分成几组。在其他地方,它可能是一个间距字符。它(自 Qt 6.0 起)以字符串形式返回,以防某些本地语言需要多个 UTF-16 代码点来表示分隔符。

另请参阅 decimalPoint() 和toString()。

QLocale::Language QLocale::language() const

返回本地语言。

另请参阅 script()、territory()、languageToString() 和bcp47Name()。

[static, since 6.3] QString QLocale::languageToCode(QLocale::Language language, QLocale::LanguageCodeTypes codeTypes = AnyLanguageCode)

根据 ISO 639 标准的定义,返回language 的双字母或三字母语言代码。

如果指定,codeTypes 选择要考虑的代码集。将返回为language 定义的代码集中的第一个代码。否则,将考虑所有 ISO-639 代码。代码的考虑顺序如下:ISO639Part1 ISO639Part2B ISO639Part2T ISO639Part3 LegacyLanguageCode 将被该函数忽略。

注: 对于QLocale::C ,函数将返回"C" 。对于QLocale::AnyLanguage ,函数将返回空字符串。如果所选语言的代码集中没有代码,则返回空字符串。

此函数在 Qt 6.3 中引入。

另请参阅 codeToLanguage()、language()、name()、bcp47Name()、territoryToCode() 和scriptToCode()。

[static] QString QLocale::languageToString(QLocale::Language language)

返回包含language 名称的QString

另请参见 territoryToString()、scriptToString() 和bcp47Name()。

[static] QList<QLocale> QLocale::matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Territory territory)

返回与给定的language,scriptterritory 匹配的有效本地化对象列表。

获取所有本地语言的列表:QList<QLocale> allLocales = QLocale::matchingLocales(QLocale::AnyLanguage,QLocale::AnyScript,QLocale::AnyTerritory);

获取适合俄罗斯的本地语言列表:QList<QLocale> locales = QLocale::matchingLocales(QLocale::AnyLanguage,QLocale::AnyScript,QLocale::Russia);

QLocale::MeasurementSystem QLocale::measurementSystem() const

返回本地的测量系统。

QString QLocale::monthName(int month, QLocale::FormatType type = LongFormat) const

返回month 的本地化名称,格式由type 指定。

例如,如果 locale 为en_USmonth 为 1,LongFormat 将返回January. ShortFormat Jan, 和NarrowFormat J

另请参阅 dayName() 和standaloneMonthName()。

QString QLocale::name(QLocale::TagSeparator separator = TagSeparator::Underscore) const

本地语言的简称。

以字符串 "language_territory "的形式返回语言和地域,其中 language 是小写、两个字母的 ISO 639 语言代码,territory 是大写、两个或三个字母的 ISO 3166 地域代码。如果本地没有指定领土,则只返回语言名称。自 Qt XML 6.7 起,可提供一个可选的separator 参数,以覆盖分隔两个标记的默认下划线字符。

即使QLocale 对象是用明确的脚本构建的,出于兼容性原因,name() 也不会包含该脚本。如果需要完整的本地名称,请使用bcp47Name() 代替,或者通过将language() 传递给languageToCode() 以及类似的脚本和地域,从返回的字符串中构造出要识别的字符串。

另请参阅 QLocale()、language()、script()、territory()、bcp47Name() 和uiLanguages()。

QString QLocale::nativeLanguageName() const

返回本地语言的本地名称。例如,"Schweizer Hochdeutsch "表示瑞士-德语本地语言。

另请参阅 nativeTerritoryName() 和languageToString()。

[since 6.2] QString QLocale::nativeTerritoryName() const

返回地域的本地名称。例如,"España "表示西班牙语/西班牙的本地名称。

此函数在 Qt 6.2 中引入。

另请参阅 nativeLanguageName() 和territoryToString()。

QString QLocale::negativeSign() const

返回该本地语言的负号指示符。

这是一个假定用作数字前缀的标记,用于表示数字是负数。它(自 Qt 6.0 起)以字符串形式返回,因为在某些本地语言中,它不是一个单独的字符,例如,它包含一个文本方向控制字符。

另请参阅 positiveSign() 和toString()。

QLocale::NumberOptions QLocale::numberOptions() const

返回此QLocale 实例与数字转换相关的选项。

默认情况下,没有为标准本地化设置任何选项,但 "C "本地化除外,它默认设置了OmitGroupSeparator

另请参阅 setNumberOptions(),toString(),groupSeparator() 和FloatingPointPrecisionOption

QString QLocale::percent() const

返回此本地语言的百分比标记。

这是一个标记,假定附加在数字上以表示百分比。它(自 Qt 6.0 起)以字符串形式返回,因为在某些本地语言中,它不是一个单独的字符,例如,它包含一个文本方向控制字符。

另请参阅 toString()。

QString QLocale::pmText() const

对于使用 12 小时时钟习惯指定的时间,返回 "PM "后缀的本地化名称。

另请参阅 amText()。

QString QLocale::positiveSign() const

返回该本地语言的正号指示符。

这是一个假定用作数字前缀的标记,用于表示数字是正数。它(自 Qt 6.0 起)以字符串形式返回,因为在某些本地语言中,它不是一个单独的字符,例如,它包含一个文本方向控制字符。

另请参阅 negativeSign() 和toString()。

QString QLocale::quoteString(const QString &str, QLocale::QuotationStyle style = StandardQuotation) const

使用给定的引号style 返回根据当前本地语言加引号的str

[since 6.0] QString QLocale::quoteString(QStringView str, QLocale::QuotationStyle style = StandardQuotation) const

这是一个重载函数。

该函数在 Qt 6.0 中引入。

QLocale::Script QLocale::script() const

返回此本地语言的脚本。

另请参阅 language()、territory()、languageToString()、scriptToString() 和bcp47Name()。

[static, since 6.1] QString QLocale::scriptToCode(QLocale::Script script)

根据 ISO 15924 标准的定义,返回script 的四字母脚本代码。

注: 对于QLocale::AnyScript ,将返回空字符串。

此函数在 Qt 6.1 中引入。

另请参阅 script()、name()、bcp47Name()、languageToCode() 和territoryToCode()。

[static] QString QLocale::scriptToString(QLocale::Script script)

返回包含script 名称的QString

另请参见 languageToString()、territoryToString()、script() 和bcp47Name()。

[static] void QLocale::setDefault(const QLocale &locale)

将全局默认 locale 设置为locale

当构建QLocale 对象且无参数时,将使用该语系。如果未调用此函数,则使用系统的 locale。

警告 在多线程应用程序中,应在启动应用程序时,在创建任何非 GUI 线程之前设置默认 locale。

警告此函数不可重入

另请参阅 system() 和c()。

void QLocale::setNumberOptions(QLocale::NumberOptions options)

QLocale 实例设置与数字转换相关的options

另请参阅 numberOptions() 和FloatingPointPrecisionOption

QString QLocale::standaloneDayName(int day, QLocale::FormatType type = LongFormat) const

返回day 的本地化名称(其中 1 代表星期一,2 代表星期二,依此类推),该名称作为独立文本使用,格式由type 指定。

如果本地信息未指定独立日名称,则返回值与dayName() 中的相同。

另请参阅 dayName() 和standaloneMonthName()。

QString QLocale::standaloneMonthName(int month, QLocale::FormatType type = LongFormat) const

按照type 指定的格式,返回作为独立文本使用的month 的本地化名称。

如果本地信息未指定独立月份名称,则返回值与monthName() 中的相同。

另请参阅 monthName() 和standaloneDayName()。

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

other 对换。该操作速度非常快,从未出现过故障。

[static] QLocale QLocale::system()

返回一个初始化为系统语言的QLocale 对象。

系统本地语言可使用系统特定的本地语言数据源(如有),否则将使用QLocale 的内置数据库条目来获取系统报告的语言、脚本和地域。

例如,在 Windows 和 Mac 上,该本地语言将使用系统配置面板中指定的十进制/分组字符和日期/时间格式。

另请参阅 c() 。

[since 6.2] QLocale::Territory QLocale::territory() const

返回此 locale 的地域。

此函数在 Qt 6.2 中引入。

另请参阅 language()、script()、territoryToString() 和bcp47Name()。

[static, since 6.2] QString QLocale::territoryToCode(QLocale::Territory territory)

根据 ISO 3166 标准的定义,返回territory 的双字母地区代码。

注: 对于QLocale::AnyTerritory ,将返回空字符串。

此函数在 Qt 6.2 中引入。

另请参阅 codeToTerritory()、territory()、name()、bcp47Name()、languageToCode() 和scriptToCode()。

[static, since 6.2] QString QLocale::territoryToString(QLocale::Territory territory)

返回包含territory 名称的QString

此函数在 Qt 6.2 中引入。

另请参阅 languageToString()、scriptToString()、territory() 和bcp47Name() 。

Qt::LayoutDirection QLocale::textDirection() const

返回语言的文本方向。

QString QLocale::timeFormat(QLocale::FormatType format = LongFormat) const

返回当前本地使用的时间格式。

如果formatLongFormat ,格式将是详细格式,否则将是简短格式。例如,en_US locale 的LongFormath:mm:ss AP tShortFormath:mm AP

另请参阅 QTime::toString() 和QTime::fromString()。

QString QLocale::toCurrencyString(qlonglong value, const QString &symbol = QString()) const

返回value 作为货币的本地化字符串表示。如果提供了symbol ,则将使用该字符串代替默认货币符号。

另请参阅 currencySymbol()。

QString QLocale::toCurrencyString(int value, const QString &symbol = QString()) const

这是一个重载函数。

QString QLocale::toCurrencyString(qulonglong value, const QString &symbol = QString()) const

这是一个重载函数。

QString QLocale::toCurrencyString(short value, const QString &symbol = QString()) const

这是一个重载函数。

QString QLocale::toCurrencyString(uint value, const QString &symbol = QString()) const

这是一个重载函数。

QString QLocale::toCurrencyString(ushort value, const QString &symbol = QString()) const

这是一个重载函数。

QString QLocale::toCurrencyString(double value, const QString &symbol = QString(), int precision = -1) const

此函数重载 toCurrencyString()。

返回value 作为货币的本地化字符串表示。如果提供symbol ,则使用该字符串代替默认货币符号。如果提供precision ,它将用于设置货币值的精度。

另请参阅 currencySymbol()。

QString QLocale::toCurrencyString(float i, const QString &symbol = QString(), int precision = -1) const

此函数重载 toCurrencyString() 函数。

QDate QLocale::toDate(const QString &string, QLocale::FormatType format = LongFormat, int baseYear = DefaultTwoDigitBaseYear) const

读取string 作为特定于本地的format 中的日期。

解析string 并返回其代表的日期。日期字符串的格式根据format 参数(参见dateFormat() )选择。

有些本地语言(尤其是ShortFormat )只使用年份的最后两位数。在这种情况下,首先会考虑从baseYear 开始的 100 年。在 6.7 之前,没有baseYear 参数,总是使用 1900。这是baseYear 的默认设置,选择从 1900 年到 1999 年的年份。在某些情况下,其他字段可能会导致选择下一世纪或上一世纪,以获得与所有给定字段一致的结果。详见QDate::fromString() 。

注意: 使用月名和日名时,必须使用当地语言。

如果无法解析日期,则返回无效日期。

另请参阅 dateFormat()、toTime()、toDateTime() 和QDate::fromString()。

QDate QLocale::toDate(const QString &string, const QString &format, int baseYear = DefaultTwoDigitBaseYear) const

string 读作给定format 中的日期。

解析string 并返回其代表的日期。有关format 的解释,请参阅QDate::fromString() 。

format 只指定年份的最后两位数时,首先考虑的是以baseYear 为起点的 100 年。在 6.7 之前,没有baseYear 参数,总是使用 1900。这是baseYear 的默认设置,选择从 1900 年到 1999 年的年份。在某些情况下,其他字段可能会导致选择下一世纪或上一世纪,以获得与所有给定字段一致的结果。详见QDate::fromString() 。

注意: 使用月名和日名时,必须使用当地语言。

如果无法解析日期,则返回无效日期。

另请参阅 dateFormat()、toTime()、toDateTime() 和QDate::fromString()。

QDate QLocale::toDate(const QString &string, QLocale::FormatType format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const

这是一个重载函数。

QDate QLocale::toDate(const QString &string, const QString &format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const

这是一个重载函数。

QDateTime QLocale::toDateTime(const QString &string, QLocale::FormatType format = LongFormat, int baseYear = DefaultTwoDigitBaseYear) const

string 读取为本地特定format 中的日期时间。

解析string 并返回其代表的日期时间。日期字符串的格式根据format 参数选择(参见dateFormat() )。

有些本地语言(尤其是ShortFormat )只使用年份的最后两位数。在这种情况下,首先会考虑从baseYear 开始的 100 年。在 6.7 之前,没有baseYear 参数,总是使用 1900。这是baseYear 的默认设置,选择从 1900 年到 1999 年的年份。在某些情况下,其他字段可能会导致选择下一个或上一个世纪,以便得到与所有给定字段一致的结果。详见QDate::fromString() 。

注意: 使用的月名和日名必须使用当地语言。使用的任何上午/下午指示符必须与amText() 或pmText() 匹配,忽略大小写。

如果字符串无法解析,则返回无效的QDateTime

另请参阅 dateTimeFormat()、toTime()、toDate() 和QDateTime::fromString()。

QDateTime QLocale::toDateTime(const QString &string, const QString &format, int baseYear = DefaultTwoDigitBaseYear) const

读取string 作为给定format 中的日期时间。

解析string 并返回其代表的日期时间。有关format 的解释,请参阅QDateTime::fromString() 。

format 只指定年份的最后两位数时,首先考虑的是baseYear 开始的 100 年。在 6.7 之前,没有baseYear 参数,总是使用 1900。这是baseYear 的默认设置,选择从 1900 年到 1999 年的年份。在某些情况下,其他字段可能会导致选择下一世纪或上一世纪,以获得与所有给定字段一致的结果。详见QDate::fromString() 。

注意: 使用的月名和日名必须使用当地语言。使用的任何上午/下午指示符必须与amText() 或pmText() 匹配,忽略大小写。

如果字符串无法解析,则返回一个无效的QDateTime 。如果字符串可以解析,但表示的日期时间无效(例如在时区转换跳过的间隙中),则返回一个无效的QDateTime ,其 toMSecsSinceEpoch() 表示的日期时间近似有效日期时间。将其传递给 fromMSecsSinceEpoch() 会产生一个有效的日期时间,但解析的字符串并不能忠实地表示该日期时间。

另请参阅 dateTimeFormat()、toTime()、toDate() 和QDateTime::fromString()。

QDateTime QLocale::toDateTime(const QString &string, QLocale::FormatType format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const

这是一个重载函数。

QDateTime QLocale::toDateTime(const QString &string, const QString &format, QCalendar cal, int baseYear = DefaultTwoDigitBaseYear) const

这是一个重载函数。

double QLocale::toDouble(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 double 值。

如果转换溢出,则返回无穷大;如果转换因其他原因(如下溢)失败,则返回 0.0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

bool ok;
double d;

QLocale c(QLocale::C);
d = c.toDouble(u"1234.56", &ok);  // ok == true,  d == 1234.56
d = c.toDouble(u"1,234.56", &ok); // ok == true,  d == 1234.56
d = c.toDouble(u"1234,56", &ok);  // ok == false, d == 0

QLocale german(QLocale::German);
d = german.toDouble(u"1234,56", &ok);  // ok == true,  d == 1234.56
d = german.toDouble(u"1.234,56", &ok); // ok == true,  d == 1234.56
d = german.toDouble(u"1234.56", &ok);  // ok == false, d == 0

d = german.toDouble(u"1.234", &ok);    // ok == true,  d == 1234.0

请注意,最后一次转换将返回 1234.0,因为". "在德语区是千位分隔符。

该函数忽略前导和尾部空白。

另请参阅 toFloat()、toInt() 和toString()。

double QLocale::toDouble(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 double 值。

如果转换溢出,则返回无穷大;如果转换因其他原因(如下溢)失败,则返回 0.0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

bool ok;
double d;

QLocale c(QLocale::C);
d = c.toDouble("1234.56", &ok);  // ok == true,  d == 1234.56
d = c.toDouble("1,234.56", &ok); // ok == true,  d == 1234.56
d = c.toDouble("1234,56", &ok);  // ok == false, d == 0

QLocale german(QLocale::German);
d = german.toDouble("1234,56", &ok);  // ok == true,  d == 1234.56
d = german.toDouble("1.234,56", &ok); // ok == true,  d == 1234.56
d = german.toDouble("1234.56", &ok);  // ok == false, d == 0

d = german.toDouble("1.234", &ok);    // ok == true,  d == 1234.0

请注意,最后一次转换将返回 1234.0,因为". "在德语区是千位分隔符。

该函数忽略前导和尾部空白。

另请参阅 toFloat()、toInt() 和toString()。

float QLocale::toFloat(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的浮点数。

如果转换溢出,则返回无穷大;如果转换因其他原因(如下溢)失败,则返回 0.0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toDouble()、toInt() 和toString()。

float QLocale::toFloat(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的浮点数。

如果转换溢出,则返回无穷大;如果转换因其他原因(如下溢)失败,则返回 0.0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toDouble()、toInt() 和toString()。

int QLocale::toInt(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 int 值。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toUInt() 和toString()。

int QLocale::toInt(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 int 值。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toUInt() 和toString()。

long QLocale::toLong(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toInt()、toULong()、toDouble() 和toString()。

long QLocale::toLong(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toInt()、toULong()、toDouble() 和toString()。

qlonglong QLocale::toLongLong(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 long long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

此函数忽略前导和尾部空白。

另请参阅 toInt()、toULongLong()、toDouble() 和toString()。

qlonglong QLocale::toLongLong(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 long long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toInt()、toULongLong()、toDouble() 和toString()。

QString QLocale::toLower(const QString &str) const

返回str 的小写副本。

如果Qt Core 使用的是 ICU 库,则将根据当前语言的规则进行转换。否则,转换将根据平台而定,使用QString::toLower() 作为通用回退。

另请参见 QString::toLower()。

short QLocale::toShort(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 short int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toUShort() 和toString()。

short QLocale::toShort(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的 short int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toUShort() 和toString()。

QString QLocale::toString(qlonglong i) const

返回i 的本地化字符串表示。

另请参阅 toLongLong()、numberOptions()、zeroDigit() 和positiveSign()。

QString QLocale::toString(QDate date, const QString &format) const

以指定的format 返回给定date 的本地化字符串表示。如果format 是空字符串,则返回空字符串。

另请参阅 QDate::toString()。

QString QLocale::toString(QTime time, QLocale::FormatType format = LongFormat) const

以指定的format (参见timeFormat() )返回给定time 的本地化字符串表示。

QString QLocale::toString(QTime time, QStringView format) const

根据指定的format 返回给定time 的本地化字符串表示。如果format 是空字符串,则返回空字符串。

另请参阅 QTime::toString() 。

QString QLocale::toString(QTime time, const QString &format) const

根据指定的format 返回给定time 的本地化字符串表示。如果format 是空字符串,则返回空字符串。

另请参阅 QTime::toString() 。

QString QLocale::toString(const QDateTime &dateTime, const QString &format) const

根据指定的format 返回给定dateTime 的本地化字符串表示。如果format 是空字符串,则返回空字符串。

另请参阅 QDateTime::toString()、QDate::toString() 和QTime::toString()。

QString QLocale::toString(QDate date, QLocale::FormatType format, QCalendar cal) const

根据指定的format (请参阅dateFormat()) 返回给定date 的本地化字符串表示,可选择指定的日历cal

注意: 某些本地格式可能会限制所能表示的年份范围。

QString QLocale::toString(QDate date, QStringView format, QCalendar cal) const

在指定的format 中返回给定date 的本地化字符串表示,可选择指定的日历cal 。如果format 是空字符串,则返回空字符串。

另请参阅 QDate::toString() 。

QString QLocale::toString(const QDateTime &dateTime, QLocale::FormatType format, QCalendar cal) const

根据指定的format (请参阅dateTimeFormat()) 返回给定dateTime 的本地化字符串表示,可选择指定的日历cal

注意: 某些本地格式可能会限制所能表示的年份范围。

QString QLocale::toString(const QDateTime &dateTime, QStringView format, QCalendar cal) const

根据指定的format 返回给定dateTime 的本地化字符串表示,可选择指定的日历cal 。如果format 是空字符串,则返回空字符串。

另请参阅 QDateTime::toString()、QDate::toString() 和QTime::toString()。

QString QLocale::toString(int i) const

这是一个重载函数。

另请参见 toInt().

QString QLocale::toString(long i) const

这是一个重载函数。

另请参见 toLong().

QString QLocale::toString(qulonglong i) const

这是一个重载函数。

另请参阅 toULongLong(),numberOptions(),zeroDigit() 和positiveSign().

QString QLocale::toString(short i) const

这是一个重载函数。

另请参见 toShort().

QString QLocale::toString(uint i) const

这是一个重载函数。

另请参见 toUInt().

QString QLocale::toString(ulong i) const

这是一个重载函数。

另请参见 toULong().

QString QLocale::toString(ushort i) const

这是一个重载函数。

另请参见 toUShort().

QString QLocale::toString(QDate date, QLocale::FormatType format = LongFormat) const

这是一个重载函数。

QString QLocale::toString(QDate date, QStringView format) const

这是一个重载函数。

QString QLocale::toString(const QDateTime &dateTime, QLocale::FormatType format = LongFormat) const

这是一个重载函数。

QString QLocale::toString(const QDateTime &dateTime, QStringView format) const

这是一个重载函数。

QString QLocale::toString(double f, char format = 'g', int precision = 6) const

这是一个重载函数。

返回表示浮点数f 的字符串。

表示形式由formatprecision 参数控制。

format 默认为'g' 。它可以是以下任何一种形式:

格式含义格式的含义precision
'e'格式为 [-]9.9e[+|-]999小数点后的位数
'E'格式为 [-]9.9E[+||-]999"
'f'格式为 [-]9.9"
'F'除 INF 和 NAN 外(见下文),与'f' 相同"
'g'使用'e''f' 格式,以更简洁者为准最大有效位数(省略尾数 0)
'G'使用'E''F' 格式,以更简洁者为准"

precision 的特殊值QLocale::FloatingPointShortest 会选择最短的表示形式,当作为数字读取时,会返回原始浮点数值。除此之外,任何负数precision 都会被忽略,取而代之的是默认值 6。

对于'e','f''g' 格式,正无穷表示为 "inf",负无穷表示为"-inf",浮点 NaN(非数字)值表示为 "nan"。对于'E''F''G' 格式,则使用 "INF "和 "NAN"。这并不因地区而异。

另请参阅 toDouble(),numberOptions(),exponential(),decimalPoint(),zeroDigit(),positiveSign(),percent(),toCurrencyString(),formattedDataSize() 和QLocale::FloatingPointPrecisionOption

QString QLocale::toString(float f, char format = 'g', int precision = 6) const

这是一个重载函数。

返回表示浮点数的字符串f

formatprecision 的含义与toString (double、char、int)中描述的含义相同。

另请参阅 toFloat(),toDouble(),numberOptions(),exponential(),decimalPoint(),zeroDigit(),positiveSign(),percent(),toCurrencyString(),formattedDataSize() 和QLocale::FloatingPointPrecisionOption

QTime QLocale::toTime(const QString &string, QLocale::FormatType format = LongFormat) const

string 读取为特定于本地format 的时间。

解析string 并返回其代表的时间。时间字符串的格式根据format 参数选择(参见timeFormat() )。

注意: 使用的任何上午/下午指示符必须与amText() 或pmText() 匹配,忽略大小写。

如果无法解析时间,则返回无效时间。

另请参阅 timeFormat()、toDate()、toDateTime() 和QTime::fromString()。

QTime QLocale::toTime(const QString &string, const QString &format) const

读取string 作为给定format 中的时间。

解析string 并返回它所代表的时间。有关format 的解释,请参阅QTime::fromString() 。

注意: 使用的任何上午/下午指示符必须与amText() 或pmText() 匹配,忽略大小写。

如果无法解析时间,则返回无效时间。

另请参见 timeFormat()、toDate()、toDateTime() 和QTime::fromString()。

uint QLocale::toUInt(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号 int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toInt() 和toString()。

uint QLocale::toUInt(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号 int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toInt() 和toString()。

ulong QLocale::toULong(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号 long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toLong()、toInt()、toDouble() 和toString()。

ulong QLocale::toULong(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号 long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toLong()、toInt()、toDouble() 和toString()。

qulonglong QLocale::toULongLong(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号 long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

此函数忽略前导和尾部空白。

另请参阅 toLongLong()、toInt()、toDouble() 和toString()。

qulonglong QLocale::toULongLong(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号 long int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toLongLong()、toInt()、toDouble() 和toString()。

ushort QLocale::toUShort(QStringView s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号短 int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toShort() 和toString()。

ushort QLocale::toUShort(const QString &s, bool *ok = nullptr) const

返回本地化字符串s 所代表的无符号短 int。

如果转换失败,函数返回 0。

如果ok 不是nullptr ,则通过将 *ok 设置为false 来报告失败,通过将 *ok 设置为true 来报告成功。

该函数忽略前导和尾部空白。

另请参阅 toShort() 和toString()。

QString QLocale::toUpper(const QString &str) const

返回str 的大写副本。

如果Qt Core 使用的是 ICU 库,则将根据当前语言的规则进行转换。否则,转换将根据平台而定,使用QString::toUpper() 作为通用回退。

注意: 在某些情况下,字符串的大写形式可能比原始字符串长。

另请参见 QString::toUpper()。

QStringList QLocale::uiLanguages(QLocale::TagSeparator separator = TagSeparator::Dash) const

用于选择翻译的本地语言名称列表

返回列表中的每个条目都是适合用户偏好的本地语言名称,用户可以根据自己的偏好将用户界面翻译成不同的语言。如果列表中的名称由多个标记组成,则这些标记会以separator 的方式连接起来。在 Qt 6.7 之前,破折号被用作分隔符。

例如,使用默认分隔符QLocale::TagSeparator::Dash ,如果用户已将其系统配置为使用美国英语,则列表中将出现 "en-Latn-US"、"en-US"、"en"。条目的顺序是检查翻译的顺序;列表中较早的条目优先于较晚的条目。如果您的翻译文件使用下划线而不是破折号来分隔本地标记,请将QLocale::TagSeparator::Underscore 作为separator

返回本地语言名称列表。这可能包括多种语言,尤其是在配置了多种用户界面翻译语言时的系统语言。条目的顺序很重要。例如,对于系统语言,它反映了用户的偏好。

在 Qt 6.9 之前,该列表只包含明确配置的本地语言及其对应语言。这导致一些调用者添加截断(如从 "en-Latn-DE "到 "en")作为后备。这有时可能会导致不恰当的选择,尤其是在尝试这些截断之前,后面的条目会是更合适的回退。

从 Qt 6.9 开始,在明确指定的本地语言之后,返回的列表中将包含合理的截断。这一变化使回退选项更加准确,而调用者无需进行任何截断。

用户可以在系统配置中明确指定首选的回退本地化语言(如 en-US),以控制首选顺序。建议使用 uiLanguages() 中的条目顺序,而不是使用自定义的回退方法。

您可能不需要直接使用该函数,只需将QLocale 对象传递给QTranslator::load() 函数即可。

另请参见 QTranslatorbcp47Name()。

QList<Qt::DayOfWeek> QLocale::weekdays() const

返回根据当前地域被视为工作日的天数列表。

QString QLocale::zeroDigit() const

返回此本地语言的零位字符。

这是一个单一的 Unicode 字符,但可以编码为代理对,因此(自 Qt 6.0 起)以字符串形式返回。在大多数本地系统中,其他数字在 Unicode 排序中紧随其后,但某些数字系统(尤其是使用 U+3007 作为零的系统)没有连续的数字。请使用toString() 获取合适的数字表示法,而不是试图从这个零位构建数字表示法。

另请参阅 toString() 。

[noexcept] QLocale &QLocale::operator=(const QLocale &other)

other 赋值给QLocale 对象,并返回对QLocale 对象的引用。

成员变量文档

[since 6.7] const int QLocale::DefaultTwoDigitBaseYear

该变量为默认的世纪起始年,格式化时将选择其中的两位数年份。常量的值是1900

有些地方,尤其是ShortFormat ,只使用年份的最后两位数。在 6.7 之前,1900 年一直被用作这种情况下的基准年。现在,各种QLocaleQDate 函数都有重载,允许调用者指定基准年份,并将此常数用作默认值。

此文档在 Qt 6.7 中引入。

另请参阅 toDate()、toDateTime()、QDate::fromString() 和QDateTime::fromString()。

相关非成员

[noexcept] size_t qHash(const QLocale &key, size_t seed = 0)

返回key 的哈希值,使用seed 作为计算的种子。

[noexcept] bool operator!=(const QLocale &lhs, const QLocale &rhs)

如果两个QLocale 对象lhsrhs 不同,则返回true ;否则返回false

注意: 系统区域设置不等于由language() 、script() 和territory() 构建的QLocale 对象,即使两者在所有数据字段都一致。具有不同数字选项的两个本地语言也不等同。

另请参阅 operator==() 和setNumberOptions()。

[noexcept] bool operator==(const QLocale &lhs, const QLocale &rhs)

如果两个QLocale 对象lhsrhs 相同,则返回true ;否则返回false

注意: 系统区域设置不等于由language() 、script() 和territory() 构建的QLocale 对象,即使两者在所有数据字段都一致。具有不同数字选项的两个本地语言也不等同。

另请参阅 operator!=() 和setNumberOptions()。

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