QChar Class

QChar 类提供了一个 16 位 Unicode 字符。更多

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

该类具有很强的可比性

该类与 char16_t,QString,QStringView,QLatin1StringView, 和QUtf8StringView 具有很强的可比性

该类与 const char *、QByteArrayQByteArrayView 具有很强的可比性

字节数组的内容解释为 UTF-8。

注意:该类中的所有函数都是可重入的

公共类型

enum Category { Mark_NonSpacing, Mark_SpacingCombining, Mark_Enclosing, Number_DecimalDigit, Number_Letter, …, Symbol_Other }
enum Decomposition { NoDecomposition, Canonical, Circle, Compat, Final, …, Wide }
enum Direction { DirAL, DirAN, DirB, DirBN, DirCS, …, DirWS }
enum JoiningType { Joining_None, Joining_Causing, Joining_Dual, Joining_Right, Joining_Left, Joining_Transparent }
enum Script { Script_Unknown, Script_Inherited, Script_Common, Script_Adlam, Script_Ahom, …, Script_ZanabazarSquare }
enum SpecialCharacter { Null, Tabulation, LineFeed, FormFeed, CarriageReturn, …, LastValidCodePoint }
enum UnicodeVersion { Unicode_1_1, Unicode_2_0, Unicode_2_1_2, Unicode_3_0, Unicode_3_1, …, Unicode_Unassigned }

公共函数

QChar()
QChar(QChar::SpecialCharacter ch)
QChar(QLatin1Char ch)
QChar(char ch)
QChar(char16_t ch)
QChar(char32_t code)
QChar(int code)
QChar(short code)
QChar(uchar ch)
QChar(uint code)
QChar(ushort code)
QChar(wchar_t ch)
QChar(uchar cell, uchar row)
QChar::Category category() const
uchar cell() const
unsigned char combiningClass() const
QString decomposition() const
QChar::Decomposition decompositionTag() const
int digitValue() const
QChar::Direction direction() const
bool hasMirrored() const
bool isDigit() const
bool isHighSurrogate() const
bool isLetter() const
bool isLetterOrNumber() const
bool isLowSurrogate() const
bool isLower() const
bool isMark() const
bool isNonCharacter() const
bool isNull() const
bool isNumber() const
bool isPrint() const
bool isPunct() const
bool isSpace() const
bool isSurrogate() const
bool isSymbol() const
bool isTitleCase() const
bool isUpper() const
QChar::JoiningType joiningType() const
QChar mirroredChar() const
uchar row() const
QChar::Script script() const
QChar toCaseFolded() const
char toLatin1() const
QChar toLower() const
QChar toTitleCase() const
QChar toUpper() const
char16_t &unicode()
char16_t unicode() const
QChar::UnicodeVersion unicodeVersion() const

静态公共成员

QChar::Category category(char32_t ucs4)
unsigned char combiningClass(char32_t ucs4)
QChar::UnicodeVersion currentUnicodeVersion()
QString decomposition(char32_t ucs4)
QChar::Decomposition decompositionTag(char32_t ucs4)
int digitValue(char32_t ucs4)
QChar::Direction direction(char32_t ucs4)
QChar fromLatin1(char c)
(since 6.0) QChar fromUcs2(char16_t c)
(since 6.0) auto fromUcs4(char32_t c)
bool hasMirrored(char32_t ucs4)
char16_t highSurrogate(char32_t ucs4)
bool isDigit(char32_t ucs4)
bool isHighSurrogate(char32_t ucs4)
bool isLetter(char32_t ucs4)
bool isLetterOrNumber(char32_t ucs4)
bool isLowSurrogate(char32_t ucs4)
bool isLower(char32_t ucs4)
bool isMark(char32_t ucs4)
bool isNonCharacter(char32_t ucs4)
bool isNumber(char32_t ucs4)
bool isPrint(char32_t ucs4)
bool isPunct(char32_t ucs4)
bool isSpace(char32_t ucs4)
bool isSurrogate(char32_t ucs4)
bool isSymbol(char32_t ucs4)
bool isTitleCase(char32_t ucs4)
bool isUpper(char32_t ucs4)
QChar::JoiningType joiningType(char32_t ucs4)
char16_t lowSurrogate(char32_t ucs4)
char32_t mirroredChar(char32_t ucs4)
bool requiresSurrogates(char32_t ucs4)
QChar::Script script(char32_t ucs4)
char32_t surrogateToUcs4(char16_t high, char16_t low)
char32_t surrogateToUcs4(QChar high, QChar low)
char32_t toCaseFolded(char32_t ucs4)
char32_t toLower(char32_t ucs4)
char32_t toTitleCase(char32_t ucs4)
char32_t toUpper(char32_t ucs4)
QChar::UnicodeVersion unicodeVersion(char32_t ucs4)
bool operator!=(const QChar &c1, const QChar &c2)
bool operator<(const QChar &c1, const QChar &c2)
QDataStream &operator<<(QDataStream &out, QChar chr)
bool operator<=(const QChar &c1, const QChar &c2)
bool operator==(const QChar &c1, const QChar &c2)
bool operator>(const QChar &c1, const QChar &c2)
bool operator>=(const QChar &c1, const QChar &c2)
QDataStream &operator>>(QDataStream &in, QChar &chr)

详细说明

在 Qt 中,Unicode 字符是没有任何标记或结构的 16 位实体。该类表示这样的实体。它是轻量级的,因此可以在任何地方使用。大多数编译器将其视为unsigned short

QChar 提供了一整套测试/分类功能,可转换为其他格式或从其他格式转换而来,可从组成的 Unicode 转换为分解的 Unicode,并可根据要求进行比较和大小写转换。

分类函数包括标准 C++ 头文件 <cctype>(前身为 <ctype.h>)中的函数,但针对的是全部 Unicode 字符,而不仅仅是 ASCII 字符。如果字符是某种类型的字符,它们都返回 true,否则返回 false。这些分类函数是isNull() (如果字符是"\0",则返回true )、isPrint() (如果字符是任何类型的可打印字符,包括空白,则返回 true)、isPunct() (任何类型的标点符号)、isMark() (Unicode 标记)、isLetter() (字母)、isNumber() (任何类型的数字字符,不仅仅是 0-9)、isLetterOrNumber() 和isDigit() (十进制数字)。所有这些都是category() 的包装器,可返回每个字符的 Unicode 定义类别。其中一些还计算派生属性(例如,如果字符属于 Separator_* 类别或Other_Control 类别中的特殊码位,则isSpace() 返回true )。

QChar 还提供direction() 函数,用于指示该字符的 "自然 "书写方向。joiningType() 函数表示该字符如何与相邻字符连接(阿拉伯语或叙利亚语主要需要),最后是hasMirrored(),表示该字符以 "非自然 "书写方向打印时是否需要镜像。

使用decomposition() 可以将合成的 Unicode 字符(如ring )转换为分解的 Unicode 字符("a "后加 "ring above")。

在 Unicode 中,不一定能进行比较,最多只能进行大小写转换。operator==() 和它的朋友们将纯粹根据字符的数字 Unicode 值(码位)进行比较,而toUpper() 和toLower() 将在字符有明确定义的大写/小写等价时进行大小写转换。对于与本地有关的比较,请使用QString::localeAwareCompare()。

转换函数包括unicode() (转换为标量)、toLatin1() (转换为标量,但将所有非拉丁-1 字符转换为 0)、row() (给出 Unicode 行)、cell() (给出 Unicode 单元)、digitValue() (给出众多数字字符中任何一个的整数值)以及大量构造函数。

QChar 提供了构造函数和转换运算符,使传统 8 位char的转换变得简单。如果您定义了QT_NO_CAST_FROM_ASCIIQT_NO_CAST_TO_ASCII ,如QString 文档中解释的那样,您将需要显式调用fromLatin1() 或使用QLatin1Char ,从 8 位char 构造一个 QChar,并且您将需要调用toLatin1() 来返回 8 位值。

从 Qt 6.0 开始,大多数 QChar 构造函数都是explicit 。这样做是为了避免在意外混合积分类型和字符串时出现危险的错误。

更多信息,请参阅"关于 Unicode 字符数据库"

另请参阅 UnicodeQStringQLatin1Char

成员类型文档

enum QChar::Category

该枚举映射了 Unicode 字符类别。

以下字符是 Unicode 规范字符:

常量描述
QChar::Mark_NonSpacing0统一码类别名称 Mn
QChar::Mark_SpacingCombining1统一码类名 Mc
QChar::Mark_Enclosing2统一码类名称 Me
QChar::Number_DecimalDigit3统一码类别名称 Nd
QChar::Number_Letter4统一码类名称 Nl
QChar::Number_Other5统一码类别名称 No
QChar::Separator_Space6统一码类名称 Zs
QChar::Separator_Line7统一码类名称 Zl
QChar::Separator_Paragraph8统一码类名称 Zp
QChar::Other_Control9统一码类名称 Cc
QChar::Other_Format10统一码类名称 Cf
QChar::Other_Surrogate11统一码类名称 Cs
QChar::Other_PrivateUse12统一码类名称 Co
QChar::Other_NotAssigned13统一码类别名称 Cn

以下类别在 Unicode 中信息丰富:

常量说明
QChar::Letter_Uppercase14统一码类别名称 Lu
QChar::Letter_Lowercase15统一码类别名称 Ll
QChar::Letter_Titlecase16统一码类名称 Lt
QChar::Letter_Modifier17统一码类名称 Lm
QChar::Letter_Other18统一码类名称 Lo
QChar::Punctuation_Connector19统一码类名称 Pc
QChar::Punctuation_Dash20统一码类名称 Pd
QChar::Punctuation_Open21统一码类名称 Ps
QChar::Punctuation_Close22统一码类名称 Pe
QChar::Punctuation_InitialQuote23统一码类名称 Pi
QChar::Punctuation_FinalQuote24统一码类名称 Pf
QChar::Punctuation_Other25统一码类别名 Po
QChar::Symbol_Math26统一码类名称 Sm
QChar::Symbol_Currency27统一码类别名 Sc
QChar::Symbol_Modifier28统一码类名称 Sk
QChar::Symbol_Other29统一码类别名称 So

另请参见 category().

enum QChar::Decomposition

该枚举类型定义了 Unicode 分解属性。有关值的说明,请参阅Unicode 标准

常量
QChar::NoDecomposition0
QChar::Canonical1
QChar::Circle8
QChar::Compat16
QChar::Final6
QChar::Font2
QChar::Fraction17
QChar::Initial4
QChar::Isolated7
QChar::Medial5
QChar::Narrow13
QChar::NoBreak3
QChar::Small14
QChar::Square15
QChar::Sub10
QChar::Super9
QChar::Vertical11
QChar::Wide12

另请参见 decomposition()。

enum QChar::Direction

该枚举类型定义了 Unicode 方向属性。有关值的说明,请参阅Unicode 标准

为符合 C/C++ 命名规则,Unicode 标准中使用的代码前会加上 "Dir"。

常量
QChar::DirAL13
QChar::DirAN5
QChar::DirB7
QChar::DirBN18
QChar::DirCS6
QChar::DirEN2
QChar::DirES3
QChar::DirET4
QChar::DirFSI (since Qt 5.3)21
QChar::DirL0
QChar::DirLRE11
QChar::DirLRI (since Qt 5.3)19
QChar::DirLRO12
QChar::DirNSM17
QChar::DirON10
QChar::DirPDF16
QChar::DirPDI (since Qt 5.3)22
QChar::DirR1
QChar::DirRLE14
QChar::DirRLI (since Qt 5.3)20
QChar::DirRLO15
QChar::DirS8
QChar::DirWS9

另请参见 direction()。

enum QChar::JoiningType

自 5.3 起

该枚举类型定义了 Unicode 连接类型属性。有关值的说明,请参阅Unicode 标准

为了符合 C/C++ 命名规则,Unicode 标准中使用的代码前加了 "Joining_"。

常量
QChar::Joining_None0
QChar::Joining_Causing1
QChar::Joining_Dual2
QChar::Joining_Right3
QChar::Joining_Left4
QChar::Joining_Transparent5

另请参见 joiningType()。

enum QChar::Script

该枚举类型定义了统一码脚本属性值。

有关 Unicode 脚本属性值的详细信息,请参见Unicode 标准附件 #24

为了与 C/C++ 命名约定保持一致,Unicode 标准中使用的代码前会加上 "Script_"。

常量说明
QChar::Script_Unknown0用于未指定、私人使用、非字符和代理码点。
QChar::Script_Inherited1用于可与多个脚本一起使用的字符,这些字符的脚本继承自前面的字符。这些字符包括非间距标记、包围标记和零宽度连接符/非连接符字符。
QChar::Script_Common2可用于多个脚本的字符,其脚本不继承自前面的字符。
QChar::Script_Adlam (since Qt 5.11)132
QChar::Script_Ahom (since Qt 5.6)126
QChar::Script_AnatolianHieroglyphs (since Qt 5.6)127
QChar::Script_Arabic8
QChar::Script_Armenian6
QChar::Script_Avestan80
QChar::Script_Balinese62
QChar::Script_Bamum84
QChar::Script_BassaVah (since Qt 5.5)104
QChar::Script_Batak93
QChar::Script_Bengali12
QChar::Script_Bhaiksuki (since Qt 5.11)133
QChar::Script_Bopomofo36
QChar::Script_Brahmi94
QChar::Script_Braille54
QChar::Script_Buginese55
QChar::Script_Buhid44
QChar::Script_CanadianAboriginal29
QChar::Script_Carian75
QChar::Script_CaucasianAlbanian (since Qt 5.5)103
QChar::Script_Chakma96
QChar::Script_Cham77
QChar::Script_Cherokee28
QChar::Script_Chorasmian (since Qt 5.15)153
QChar::Script_Coptic46
QChar::Script_Cuneiform63
QChar::Script_Cypriot53
QChar::Script_CyproMinoan (since Qt 6.3)157
QChar::Script_Cyrillic5
QChar::Script_Deseret41
QChar::Script_Devanagari11
QChar::Script_DivesAkuru (since Qt 5.15)154
QChar::Script_Dogra (since Qt 5.15)142
QChar::Script_Duployan (since Qt 5.5)105
QChar::Script_EgyptianHieroglyphs81
QChar::Script_Elbasan (since Qt 5.5)106
QChar::Script_Elymaic (since Qt 5.15)149
QChar::Script_Ethiopic27
QChar::Script_Garay (since Qt 6.9)164
QChar::Script_Georgian25
QChar::Script_Glagolitic57
QChar::Script_Gothic40
QChar::Script_Grantha (since Qt 5.5)107
QChar::Script_Greek4
QChar::Script_Gujarati14
QChar::Script_GunjalaGondi (since Qt 5.15)143
QChar::Script_Gurmukhi13
QChar::Script_GurungKhema (since Qt 6.9)165
QChar::Script_Han37
QChar::Script_Hangul26
QChar::Script_HanifiRohingya (since Qt 5.15)144
QChar::Script_Hanunoo43
QChar::Script_Hatran (since Qt 5.6)128
QChar::Script_Hebrew7
QChar::Script_Hiragana34
QChar::Script_ImperialAramaic87
QChar::Script_InscriptionalPahlavi90
QChar::Script_InscriptionalParthian89
QChar::Script_Javanese85
QChar::Script_Kaithi92
QChar::Script_Kannada18
QChar::Script_Katakana35
QChar::Script_Kawi (since Qt 6.5)162
QChar::Script_KayahLi72
QChar::Script_Kharoshthi61
QChar::Script_KhitanSmallScript (since Qt 5.15)155
QChar::Script_Khmer32
QChar::Script_Khojki (since Qt 5.5)109
QChar::Script_Khudawadi (since Qt 5.5)123
QChar::Script_KiratRai (since Qt 6.9)166
QChar::Script_Lao22
QChar::Script_Latin3
QChar::Script_Lepcha68
QChar::Script_Limbu47
QChar::Script_LinearA (since Qt 5.5)110
QChar::Script_LinearB49
QChar::Script_Lisu83
QChar::Script_Lycian74
QChar::Script_Lydian76
QChar::Script_Mahajani (since Qt 5.5)111
QChar::Script_Makasar (since Qt 5.15)145
QChar::Script_Malayalam19
QChar::Script_Mandaic95
QChar::Script_Manichaean (since Qt 5.5)112
QChar::Script_Marchen (since Qt 5.11)134
QChar::Script_MasaramGondi (since Qt 5.11)138
QChar::Script_Medefaidrin (since Qt 5.15)146
QChar::Script_MeeteiMayek86
QChar::Script_MendeKikakui (since Qt 5.5)113
QChar::Script_MeroiticCursive97
QChar::Script_MeroiticHieroglyphs98
QChar::Script_Miao99
QChar::Script_Modi (since Qt 5.5)114
QChar::Script_Mongolian33
QChar::Script_Mro (since Qt 5.5)115
QChar::Script_Multani (since Qt 5.6)129
QChar::Script_Myanmar24
QChar::Script_Nabataean (since Qt 5.5)117
QChar::Script_NagMundari (since Qt 6.3)163
QChar::Script_Nandinagari (since Qt 5.15)150
QChar::Script_Newa (since Qt 5.11)135
QChar::Script_NewTaiLue56
QChar::Script_Nko66
QChar::Script_Nushu (since Qt 5.11)139
QChar::Script_NyiakengPuachueHmong (since Qt 5.15)151
QChar::Script_Ogham30
QChar::Script_OlChiki69
QChar::Script_OlOnal (since Qt 6.9)167
QChar::Script_OldHungarian (since Qt 5.6)130
QChar::Script_OldItalic39
QChar::Script_OldNorthArabian (since Qt 5.5)116
QChar::Script_OldPermic (since Qt 5.5)120
QChar::Script_OldPersian60
QChar::Script_OldSogdian (since Qt 5.15)147
QChar::Script_OldSouthArabian88
QChar::Script_OldTurkic91
QChar::Script_OldUyghur (since Qt 6.3)158
QChar::Script_Oriya15
QChar::Script_Osage (since Qt 5.11)136
QChar::Script_Osmanya52
QChar::Script_PahawhHmong (since Qt 5.5)108
QChar::Script_Palmyrene (since Qt 5.5)118
QChar::Script_PauCinHau (since Qt 5.5)119
QChar::Script_PhagsPa65
QChar::Script_Phoenician64
QChar::Script_PsalterPahlavi (since Qt 5.5)121
QChar::Script_Rejang73
QChar::Script_Runic31
QChar::Script_Samaritan82
QChar::Script_Saurashtra71
QChar::Script_Sharada100
QChar::Script_Shavian51
QChar::Script_Siddham (since Qt 5.5)122
QChar::Script_SignWriting (since Qt 5.6)131
QChar::Script_Sinhala20
QChar::Script_Sogdian (since Qt 5.15)148
QChar::Script_SoraSompeng101
QChar::Script_Soyombo (since Qt 5.11)140
QChar::Script_Sundanese67
QChar::Script_Sunuwar (since Qt 6.9)168
QChar::Script_SylotiNagri59
QChar::Script_Syriac9
QChar::Script_Tagalog42
QChar::Script_Tagbanwa45
QChar::Script_TaiLe48
QChar::Script_TaiTham78
QChar::Script_TaiViet79
QChar::Script_Takri102
QChar::Script_Tamil16
QChar::Script_Tangut (since Qt 5.11)137
QChar::Script_Tangsa (since Qt 6.3)159
QChar::Script_Telugu17
QChar::Script_Thaana10
QChar::Script_Thai21
QChar::Script_Tibetan23
QChar::Script_Tifinagh58
QChar::Script_Tirhuta (since Qt 5.5)124
QChar::Script_Todhri (since Qt 6.9)169
QChar::Script_Toto (since Qt 6.3)160
QChar::Script_TuluTigalari (since Qt 6.9)170
QChar::Script_Ugaritic50
QChar::Script_Vai70
QChar::Script_Vithkuqi (since Qt 6.3)161
QChar::Script_Wancho (since Qt 5.15)152
QChar::Script_WarangCiti (since Qt 5.5)125
QChar::Script_Yezidi (since Qt 5.15)156
QChar::Script_Yi38
QChar::Script_ZanabazarSquare (since Qt 5.11)141

另请参阅 script()。

enum QChar::SpecialCharacter

常数说明
QChar::Null0x0000具有此值的QChar isNull ().
QChar::Tabulation0x0009字符制表符。
QChar::LineFeed0x000a
QChar::FormFeed0x000c
QChar::CarriageReturn0x000d
QChar::Space0x0020
QChar::Nbsp0x00a0非分隔符。
QChar::SoftHyphen0x00ad
QChar::ReplacementCharacter0xfffd当字体中某一编码点没有字形时显示的字符。通常使用一个特殊的问号字符。当输入数据无法用 Unicode 表示时,编解码器会使用该编码点。
QChar::ObjectReplacementCharacter0xfffc用于在无法显示图像等对象时表示此类对象。
QChar::ByteOrderMark0xfeff
QChar::ByteOrderSwapped0xfffe
QChar::ParagraphSeparator0x2029
QChar::LineSeparator0x2028
QChar::VisualTabCharacter (since Qt 6.2)0x2192用水平箭头表示表格。
QChar::LastValidCodePoint0x10ffff

enum QChar::UnicodeVersion

指定引入某个字符的Unicode 标准版本。

常量说明
QChar::Unicode_1_11版本 1.1
QChar::Unicode_2_02版本 2.0
QChar::Unicode_2_1_23版本 2.1.2
QChar::Unicode_3_04版本 3.0
QChar::Unicode_3_15版本 3.1
QChar::Unicode_3_263.2 版
QChar::Unicode_4_07版本 4.0
QChar::Unicode_4_184.1 版
QChar::Unicode_5_09版本 5.0
QChar::Unicode_5_110版本 5.1
QChar::Unicode_5_2115.2 版
QChar::Unicode_6_0126.0 版
QChar::Unicode_6_113版本 6.1
QChar::Unicode_6_214版本 6.2
QChar::Unicode_6_3 (since Qt 5.3)156.3 版
QChar::Unicode_7_0 (since Qt 5.5)167.0 版
QChar::Unicode_8_0 (since Qt 5.6)178.0 版
QChar::Unicode_9_0 (since Qt 5.11)189.0 版
QChar::Unicode_10_0 (since Qt 5.11)1910.0 版
QChar::Unicode_11_0 (since Qt 5.15)2011.0 版
QChar::Unicode_12_0 (since Qt 5.15)2112.0 版
QChar::Unicode_12_1 (since Qt 5.15)2212.1 版
QChar::Unicode_13_0 (since Qt 5.15)2313.0 版
QChar::Unicode_14_0 (since Qt 6.3)2414.0 版
QChar::Unicode_15_0 (since Qt 6.5)2515.0 版
QChar::Unicode_15_1 (since Qt 6.8)2615.1 版
QChar::Unicode_16_0 (since Qt 6.9)27版本 16.0
QChar::Unicode_Unassigned0在统一码 8.0 版中,该值未分配给任何字符。

另请参阅 unicodeVersion() 和currentUnicodeVersion()。

成员函数文档

[constexpr noexcept] QChar::QChar()

构造一个空 QChar('\0')。

另请参见 isNull().

[constexpr noexcept] QChar::QChar(QChar::SpecialCharacter ch)

为预定义的字符值ch 构造一个 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数参数类型,而不接受隐式转换为该类型的所有参数。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[constexpr noexcept] QChar::QChar(QLatin1Char ch)

构造一个与 ASCII/Latin-1 字符ch 相对应的 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数的参数类型,而不接受隐式转换的所有类型。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[constexpr noexcept] QChar::QChar(char ch)

构造一个与 ASCII/Latin-1 字符ch 相对应的 QChar。

注: QT_NO_CAST_FROM_ASCII 已定义时,此构造函数不可用。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数参数类型,而不接受隐式转换为该类型的所有内容。一个向后兼容的解决方法是显式地转换为 QChar 构造函数支持的参数类型之一。

另请参见 QT_NO_CAST_FROM_ASCII

[constexpr noexcept] QChar::QChar(char16_t ch)

构造一个与 UTF-16 字符ch 相对应的 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数的参数类型,而不接受隐式转换为该类型的所有参数。一个向后兼容的解决方法是显式地转换为 QChar 构造函数支持的参数类型之一。

[default] QChar::QChar(char32_t code)

为 Unicode 编码点为code 的字符构造一个 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数的参数类型,而不接受隐式转换的所有类型。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[explicit constexpr noexcept] QChar::QChar(int code)

为 Unicode 编码点为code 的字符构造一个 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数的参数类型,而不接受隐式转换的所有类型。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[constexpr noexcept] QChar::QChar(short code)

为 Unicode 编码点为code 的字符构造一个 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数的参数类型,而不接受隐式转换的所有类型。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[explicit constexpr noexcept] QChar::QChar(uchar ch)

构造一个与 ASCII/Latin-1 字符ch 相对应的 QChar。

注: 当定义了QT_NO_CAST_FROM_ASCIIQT_RESTRICTED_CAST_FROM_ASCII 时,此构造函数不可用。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数参数类型,而不接受隐式转换为该类型的所有内容。一个向后兼容的解决方法是显式地转换为 QChar 构造函数支持的参数类型之一。

另请参阅 QT_NO_CAST_FROM_ASCIIQT_RESTRICTED_CAST_FROM_ASCII

[explicit constexpr noexcept] QChar::QChar(uint code)

为 Unicode 编码点为code 的字符构造一个 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数的参数类型,而不接受隐式转换的所有类型。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[constexpr noexcept] QChar::QChar(ushort code)

为 Unicode 编码点为code 的字符构造一个 QChar。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数的参数类型,而不接受隐式转换的所有类型。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[constexpr noexcept] QChar::QChar(wchar_t ch)

构造一个与宽字符ch 相对应的 QChar。

注: 该构造函数仅适用于 Windows。

注: 自 Qt 6.9 起,该构造函数禁用隐式转换。这意味着它只接受构造函数参数类型,而不接受隐式转换为该类型的所有内容。一个向后兼容的解决方法是显式转换到 QChar 构造函数支持的参数类型之一。

[explicit constexpr noexcept] QChar::QChar(uchar cell, uchar row)

row 行中的 Unicode 单元格cell 构建一个 QChar。

另请参阅 cell() 和row() 。

[noexcept] QChar::Category QChar::category() const

返回字符的类别。

[static noexcept] QChar::Category QChar::category(char32_t ucs4)

这是一个重载函数。

返回ucs4 指定的 UCS-4 编码字符的类别。

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] uchar QChar::cell() const

返回 Unicode 字符的单元格(最小有效字节)。

另请参阅 row()。

[noexcept] unsigned char QChar::combiningClass() const

返回 Unicode 标准中定义的字符组合类。这主要是为附加在基本字符上的标记提供定位提示。

Qt 文本渲染引擎使用此信息来正确定位基本字符周围的非间隔标记。

[static noexcept] unsigned char QChar::combiningClass(char32_t ucs4)

这是一个重载函数。

根据 Unicode 标准的定义,返回ucs4 指定的 UCS-4 编码字符的组合类。

注: 在 Qt XML 6 之前,此函数的参数为uint

[static noexcept] QChar::UnicodeVersion QChar::currentUnicodeVersion()

返回最新支持的 Unicode 版本。

QString QChar::decomposition() const

将字符分解为各个组成部分。如果不存在分解,则返回空字符串。

[static] QString QChar::decomposition(char32_t ucs4)

这是一个重载函数。

ucs4 指定的 UCS-4 编码字符分解为各个组成部分。如果不存在分解,则返回空字符串。

注意: 在 Qt XML 6 之前,此函数的参数为uint

[noexcept] QChar::Decomposition QChar::decompositionTag() const

返回定义字符组成的标记。如果不存在分解,则返回QChar::NoDecomposition

[static noexcept] QChar::Decomposition QChar::decompositionTag(char32_t ucs4)

这是一个重载函数。

返回定义由ucs4 指定的 UCS-4 编码字符组成的标记。如果不存在分解,则返回QChar::NoDecomposition

注: 在 Qt XML 6 之前,此函数需要一个uint 参数。

[noexcept] int QChar::digitValue() const

返回数字的数值,如果字符不是数字,则返回-1。

[static noexcept] int QChar::digitValue(char32_t ucs4)

这是一个重载函数。

返回由 UCS-4 编码字符ucs4 指定的数字的数值,如果该字符不是数字,则返回-1。

注意: 在 Qt XML 6 之前,该函数的参数为uint

[noexcept] QChar::Direction QChar::direction() const

返回字符的方向。

[static noexcept] QChar::Direction QChar::direction(char32_t ucs4)

这是一个重载函数。

返回ucs4 指定的 UCS-4 编码字符的方向。

注: 在 Qt XML 6 之前,该函数的参数为uint

[static constexpr noexcept] QChar QChar::fromLatin1(char c)

将 Latin-1 字符c 转换为等效字符QChar 。这主要适用于非国际化软件。

另一种方法是使用QLatin1Char

另请参阅 toLatin1() 和unicode()。

[static constexpr noexcept, since 6.0] QChar QChar::fromUcs2(char16_t c)

从 UTF-16 字符c 构造QChar

该函数在 Qt 6.0 中引入。

另请参阅 fromUcs4() 。

[static constexpr noexcept, since 6.0] auto QChar::fromUcs4(char32_t c)

返回一个匿名结构,该结构

  • 包含char16_t chars[2] 数组的匿名结构体、
  • 可以隐式转换为QStringView ,并使用 C++11 的范围 for 循环迭代。
  • 用 C++11 范围内的 for 循环迭代。

如果c 需要代理,则chars[0] 包含高代理,chars[1] 包含低代理,QStringView 的大小为 2。否则,chars[0] 包含cchars[1]nullQStringView 的大小为 1。

这样就可以方便地使用结果:

QString s;
s += QChar::fromUcs4(ch);
for (char16_t c16 : QChar::fromUcs4(ch))
    use(c16);

此函数在 Qt 6.0 中引入。

另请参阅 fromUcs2() 和requiresSurrogates()。

[noexcept] bool QChar::hasMirrored() const

如果文本方向相反,则返回true ;否则返回false

mirroredChar() != ch)。

另请参阅 mirroredChar() 。

[static noexcept] bool QChar::hasMirrored(char32_t ucs4)

这是一个重载函数。

如果文本方向相反,则ucs4 指定的 UCS-4 编码字符应反转,否则返回true ;否则返回false

与 (QChar::mirroredChar(ucs4) != ucs4) 的速度相当。

注: 在 Qt XML 6 之前,此函数的参数为uint

另请参阅 mirroredChar() 。

[static constexpr noexcept] char16_t QChar::highSurrogate(char32_t ucs4)

返回 UCS-4 编码码位的高代用部分。如果ucs4 小于 0x10000,则返回结果未定义。

注: 在 Qt XML 6 之前,此函数接受uint 参数并返回ushort

[constexpr noexcept] bool QChar::isDigit() const

如果字符是十进制数字,则返回true (Number_DecimalDigit);否则返回false

另请参阅 isNumber() 。

[static constexpr noexcept] bool QChar::isDigit(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是十进制数字,则返回true (Number_DecimalDigit);否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

另请参阅 isNumber() 。

[constexpr noexcept] bool QChar::isHighSurrogate() const

如果QChar 是 UTF16 代理的高位部分(例如,如果其码位在 [0xd800..0xdbff] 范围内),则返回true ;否则返回 false。

[static constexpr noexcept] bool QChar::isHighSurrogate(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是 UTF16 代理的高位字符(例如,其码位在 [0xd800..0xdbff] 范围内),则返回true ;否则返回 false。

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isLetter() const

如果字符是字母,则返回true (Letter_* 类别);否则返回false

[static constexpr noexcept] bool QChar::isLetter(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是字母(Letter_* 类别),则返回true ;否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isLetterOrNumber() const

如果字符是字母或数字,则返回true (Letter_* 或 Number_* 类别);否则返回false

[static constexpr noexcept] bool QChar::isLetterOrNumber(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是字母或数字(Letter_* 或 Number_* 类别),则返回true ;否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isLowSurrogate() const

如果QChar 是 UTF16 代理的低字节(例如,如果其码位在 [0xdc00..0xdfff] 范围内),则返回true ;否则返回 false。

[static constexpr noexcept] bool QChar::isLowSurrogate(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是 UTF16 代理的低部分(例如,如果其码位在 [0xdc00..0xdfff] 范围内),则返回true ;否则返回 false。

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isLower() const

如果字符是小写字母,则返回true ,例如category() 是Letter_Lowercase

另请参阅 isUpper()、toLower() 和toUpper()。

[static constexpr noexcept] bool QChar::isLower(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是小写字母,则返回true ,例如category() 是Letter_Lowercase

注: 在 Qt XML 6 之前,该函数的参数为uint

另请参阅 isUpper()、toLower() 和toUpper()。

[noexcept] bool QChar::isMark() const

如果字符是标记(Mark_* 类别),则返回true ;否则返回false

有关标记的更多信息,请参见QChar::Category

[static noexcept] bool QChar::isMark(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是一个标记(Mark_* 类别),则返回true ;否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isNonCharacter() const

如果QChar 是非字符,则返回true ;否则返回 false。

Unicode 有一定数量的码位被归类为 "非字符":也就是说,它们可以用于应用程序的内部目的,但不能用于文本交换。它们是每个 Unicode 平面的最后两个条目([0xfffe..0xffffff]、[0x1fffe..0x1ffff]等)以及范围 [0xfdd0..0xfdef] 中的条目。

[static constexpr noexcept] bool QChar::isNonCharacter(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符为非字符,则返回true ;否则返回 false。

Unicode 有一定数量的码位被归类为 "非字符":也就是说,它们可以用于应用程序的内部目的,但不能用于文本交换。这就是每个 Unicode Plane 的最后两个条目([0xfffe..0xffffff]、[0x1fffe..0x1ffffff]等)以及范围 [0xfdd0..0xfdef] 中的条目。

注意: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isNull() const

如果字符是 Unicode 字符 0x0000('\0'),则返回true ;否则返回false

[constexpr noexcept] bool QChar::isNumber() const

如果字符是数字(Number_* 类别,而不仅仅是 0-9),则返回true ;否则返回false

另请参阅 isDigit() 。

[static constexpr noexcept] bool QChar::isNumber(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是数字(Number_* 类别,而不仅仅是 0-9),则返回true ;否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

另请参阅 isDigit() 。

[noexcept] bool QChar::isPrint() const

如果字符是可打印字符,则返回true ;否则返回false 。这是任何不属于Other_* 类别的字符。

请注意,这并不表明该字符在特定字体中是否可用。

[static noexcept] bool QChar::isPrint(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是可打印字符,则返回true ;否则返回false 。这是任何不属于Other_* 类别的字符。

请注意,这并不表明该字符在特定字体中是否可用。

注意: 在 Qt XML 6 之前,此函数的参数为uint

[noexcept] bool QChar::isPunct() const

如果字符是标点符号(Punctuation_* 类别),则返回true ;否则返回false

[static noexcept] bool QChar::isPunct(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是标点符号(Punctuation_* 类别),则返回true ;否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isSpace() const

如果字符是分隔符(Separator_* 类别或Other_Control 类别中的某些码位),则返回true ;否则返回false

[static constexpr noexcept] bool QChar::isSpace(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是分隔符(Separator_* 类别或Other_Control 类别中的某些码位),则返回true ;否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isSurrogate() const

如果QChar 包含的码位在 UTF-16 代理范围的高位或低位(例如,如果其码位在 [0xd800..0xdfff] 范围内),则返回true ;否则返回 false。

[static constexpr noexcept] bool QChar::isSurrogate(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符包含的码位在 UTF-16 代理范围的高位或低位(例如,其码位在 [0xd800..0xdfff] 范围内),则返回true ;否则返回 false。

注: 在 Qt XML 6 之前,该函数的参数为uint

[noexcept] bool QChar::isSymbol() const

如果字符是符号(Symbol_* 类别),则返回true ;否则返回false

[static noexcept] bool QChar::isSymbol(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是一个符号(Symbol_* 类别),则返回true ;否则返回false

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] bool QChar::isTitleCase() const

如果字符是小写字母,则返回true ,例如category() 是Letter_Titlecase

另请参阅 isLower()、toUpper()、toLower() 和toTitleCase()。

[static constexpr noexcept] bool QChar::isTitleCase(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是小写字母,则返回true ,例如category() 是Letter_Titlecase

注: 在 Qt XML 6 之前,该函数的参数为uint

另请参阅 isLower()、toUpper()、toLower() 和toTitleCase() 。

[constexpr noexcept] bool QChar::isUpper() const

如果字符是大写字母,则返回true ,例如category() 是Letter_Uppercase

另请参阅 isLower()、toUpper() 和toLower()。

[static constexpr noexcept] bool QChar::isUpper(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是大写字母,则返回true ,例如category() 是Letter_Uppercase

注: 在 Qt XML 6 之前,该函数的参数为uint

另请参阅 isLower()、toUpper() 和toLower()。

[noexcept] QChar::JoiningType QChar::joiningType() const

返回字符的连接类型属性信息(某些语言如阿拉伯语或叙利亚语需要)。

[static noexcept] QChar::JoiningType QChar::joiningType(char32_t ucs4)

这是一个重载函数。

返回ucs4 指定的 UCS-4 编码字符的连接类型属性信息(某些语言如阿拉伯语或叙利亚语需要)。

注: 在 Qt XML 6 之前,此函数的参数为uint

[static constexpr noexcept] char16_t QChar::lowSurrogate(char32_t ucs4)

返回 UCS-4 编码码位的低代理部分。如果ucs4 小于 0x10000,则返回结果未定义。

注: 在 Qt XML 6 之前,此函数接受uint 参数并返回ushort

[noexcept] QChar QChar::mirroredChar() const

如果该字符是镜像字符,则返回镜像字符;否则返回字符本身。

另请参阅 hasMirrored()。

[static noexcept] char32_t QChar::mirroredChar(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符是镜像字符,则返回镜像字符;否则返回字符本身。

注: 在 Qt XML 6 之前,此函数接收uint 参数并返回uint

另请参阅 hasMirrored() 。

[static constexpr noexcept] bool QChar::requiresSurrogates(char32_t ucs4)

如果ucs4 指定的 UCS-4 编码字符可以拆分成 UTF16 代理的高位和低位部分(例如,如果其码位大于或等于 0x10000),则返回true ;否则返回 false。

注: 在 Qt XML 6 之前,该函数的参数为uint

[constexpr noexcept] uchar QChar::row() const

返回 Unicode 字符的行(最显著字节)。

另请参阅 cell()。

[noexcept] QChar::Script QChar::script() const

返回此字符的 Unicode 脚本属性值。

[static noexcept] QChar::Script QChar::script(char32_t ucs4)

这是一个重载函数。

返回以 UCS-4 编码形式指定的字符的 Unicode 脚本属性值(ucs4 )。

注: 在 Qt XML 6 之前,此函数的参数为uint

[static constexpr noexcept] char32_t QChar::surrogateToUcs4(char16_t high, char16_t low)

将带有给定highlow 值的 UTF16 代理对转换为 UCS-4 编码的码位。

注: 在 Qt XML 6 之前,该函数使用ushort 参数并返回uint

[static constexpr noexcept] char32_t QChar::surrogateToUcs4(QChar high, QChar low)

这是一个重载函数。

将 UTF16 代理对 (high,low) 转换为 UCS-4 编码的码位。

注: 在 Qt XML 6 之前,此函数返回uint

[noexcept] QChar QChar::toCaseFolded() const

返回字符的大小写折叠等价。对于大多数 Unicode 字符,这与toLower() 相同。

[static noexcept] char32_t QChar::toCaseFolded(char32_t ucs4)

这是一个重载函数。

返回ucs4 指定的 UCS-4 编码字符的大小写折叠等效字符。对于大多数 Unicode 字符,它与toLower() 相同。

注: 在 Qt XML 6 之前,该函数接受uint 参数并返回uint

[constexpr noexcept] char QChar::toLatin1() const

返回相当于QChar 或 0 的 Latin-1 字符。这主要适用于非国际化软件。

注意: 无法区分非 Latin-1 字符和 Latin-1 0 (NUL) 字符。最好使用unicode(),它不会产生这种歧义。

另请参见 unicode()。

[noexcept] QChar QChar::toLower() const

如果字符是大写或标题小写,则返回小写等价字符;否则返回字符本身。

[static noexcept] char32_t QChar::toLower(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符为大写或小写,则返回该字符的小写等效字符;否则返回字符本身。

注: 在 Qt XML 6 之前,此函数接收uint 参数并返回uint

[noexcept] QChar QChar::toTitleCase() const

如果字符是小写或大写,则返回标题大小写的对应字符;否则返回字符本身。

[static noexcept] char32_t QChar::toTitleCase(char32_t ucs4)

这是一个重载函数。

如果ucs4 指定的 UCS-4 编码字符为小写或大写,则返回该字符的标题大小写等效字符;否则返回字符本身。

注: 在 Qt XML 6 之前,此函数接收uint 参数并返回uint

[noexcept] QChar QChar::toUpper() const

如果字符是小写或标题小写,则返回大写等价字符;否则返回字符本身。

注: 在字符的大写形式需要两个或两个以上字符的罕见情况下,此函数也返回原始字符。

另请参见 QString::toUpper()。

[static noexcept] char32_t QChar::toUpper(char32_t ucs4)

这是一个重载函数。

如果字符是小写或标题小写,则返回ucs4 指定的 UCS-4 编码字符的大写等效字符;否则返回字符本身。

注: 在字符的大写形式需要两个或两个以上字符的罕见情况下,该函数也会返回原始字符。

注: 在 Qt XML 6 之前,此函数接受uint 参数并返回uint

另请参阅 QString::toUpper() 。

[constexpr noexcept] char16_t &QChar::unicode()

返回QChar 的 Unicode 数值引用。

[constexpr noexcept] char16_t QChar::unicode() const

返回QChar 的 Unicode 数值。

[noexcept] QChar::UnicodeVersion QChar::unicodeVersion() const

返回引入该字符的 Unicode 版本。

[static noexcept] QChar::UnicodeVersion QChar::unicodeVersion(char32_t ucs4)

这是一个重载函数。

Returns the Unicode version that introduced the character specified in its UCS-4-encoded form asucs4.

注: 在 Qt XML 6 之前,该函数的参数为uint

相关非成员

[constexpr noexcept] bool operator!=(const QChar &c1, const QChar &c2)

如果c1c2 不是相同的 Unicode 字符,则返回true ;否则返回false

[constexpr noexcept] bool operator<(const QChar &c1, const QChar &c2)

如果c1 的数字 Unicode 值小于c2 的数字 Unicode 值,则返回true ;否则返回false

QDataStream &operator<<(QDataStream &out, QChar chr)

将字符chr 写入流out

另请参阅 序列化 Qt 数据类型

[constexpr noexcept] bool operator<=(const QChar &c1, const QChar &c2)

如果c1 的数字 Unicode 值小于或等于c2 ,则返回true ;否则返回false

[constexpr noexcept] bool operator==(const QChar &c1, const QChar &c2)

如果c1c2 是相同的 Unicode 字符,则返回true ;否则返回false

[constexpr noexcept] bool operator>(const QChar &c1, const QChar &c2)

如果c1 的数字 Unicode 值大于c2 的数字 Unicode 值,则返回true ;否则返回false

[constexpr noexcept] bool operator>=(const QChar &c1, const QChar &c2)

如果c1 的数字 Unicode 值大于或等于c2 ,则返回true ;否则返回false

QDataStream &operator>>(QDataStream &in, QChar &chr)

从数据流in 中读取一个字符到字符chr 中。

另请参阅 序列化 Qt 数据类型

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