QChar类

QChar类提供16位Unicode字符。更多信息...

头文件 #include <QChar>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

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

公共类型

枚举类别 { Mark_NonSpacing, Mark_SpacingCombining, Mark_Enclosing, Number_DecimalDigit, Number_Letter, …, Symbol_Other }
枚举分解 { NoDecomposition, Canonical, Circle, Compat, Final, …, Wide }
枚举方向 { DirAL, DirAN, DirB, DirBN, DirCS, …, DirWS }
枚举连接类型 { Joining_None, Joining_Causing, Joining_Dual, Joining_Right, Joining_Left, Joining_Transparent }
枚举脚本 { Script_Unknown, Script_Inherited, Script_Common, Script_Adlam, Script_Ahom, …, Script_ZanabazarSquare }
枚举特殊字符 { Null, Tabulation, LineFeed, FormFeed, CarriageReturn, …, LastValidCodePoint }
枚举Unicode版本 { Unicode_1_1, Unicode_2_0, Unicode_2_1_2, Unicode_3_0, Unicode_3_1, …, Unicode_Unassigned }

公共函数

QChar()
QChar(ushort code)
QChar(uchar cell, uchar row)
QChar(short code)
QChar(uint code)
QChar(int code)
QChar(QChar::SpecialCharacter ch)
QChar(QLatin1Char ch)
QChar(char16_t ch)
QChar(wchar_t ch)
QChar(char ch)
QChar(uchar ch)
QChar::Categorycategory() const
ucharcell() const
unsigned charcombiningClass() const
QStringdecomposition() const
QChar::DecompositiondecompositionTag() const
intdigitValue() const
QChar::Directiondirection() const
boolhasMirrored() const
boolisDigit() const
boolisHighSurrogate() const
boolisLetter() const
boolisLetterOrNumber() const
boolisLowSurrogate() const
boolisLower() const
boolisMark() const
boolisNonCharacter() const
boolisNull() const
boolisNumber() const
boolisPrint() const
boolisPunct() const
boolisSpace() const
boolisSurrogate() const
boolisSymbol() const
boolisTitleCase() const
boolisUpper() const
QChar::JoiningTypejoiningType() const
QCharmirroredChar() const
ucharrow() const
QChar::Scriptscript() const
QChartoCaseFolded() const
chartoLatin1() const
QChartoLower() const
QChartoTitleCase() const
QChartoUpper() const
char16_tunicode() const
char16_t &unicode()
QChar::UnicodeVersionunicodeVersion() const

静态公共成员

QChar::Categorycategory(char32_t ucs4)
unsigned charcombiningClass(char32_t ucs4)
QChar::UnicodeVersioncurrentUnicodeVersion()
QStringdecomposition(char32_t ucs4)
QChar::DecompositiondecompositionTag(char32_t ucs4)
intdigitValue(char32_t ucs4)
QChar::Directiondirection(char32_t ucs4)
QCharfromLatin1(char c)
(since 6.0) QCharfromUcs2(char16_t c)
(since 6.0) RfromUcs4(char32_t c)
boolhasMirrored(char32_t ucs4)
char16_thighSurrogate(char32_t ucs4)
boolisDigit(char32_t ucs4)
boolisHighSurrogate(char32_t ucs4)
boolisLetter(char32_t ucs4)
boolisLetterOrNumber(char32_t ucs4)
boolisLowSurrogate(char32_t ucs4)
boolisLower(char32_t ucs4)
boolisMark(char32_t ucs4)
boolisNonCharacter(char32_t ucs4)
boolisNumber(char32_t ucs4)
boolisPrint(char32_t ucs4)
boolisPunct(char32_t ucs4)
boolisSpace(char32_t ucs4)
boolisSurrogate(char32_t ucs4)
boolisSymbol(char32_t ucs4)
boolisTitleCase(char32_t ucs4)
boolisUpper(char32_t ucs4)
QChar::JoiningTypejoiningType(char32_t ucs4)
char16_tlowSurrogate(char32_t ucs4)
char32_tmirroredChar(char32_t ucs4)
boolrequiresSurrogates(char32_t ucs4)
QChar::Scriptscript(char32_t ucs4)
char32_tsurrogateToUcs4(char16_t high, char16_t low)
char32_tsurrogateToUcs4(QChar high, QChar low)
char32_ttoCaseFolded(char32_t ucs4)
char32_ttoLower(char32_t ucs4)
char32_ttoTitleCase(char32_t ucs4)
char32_ttoUpper(char32_t ucs4)
QChar::UnicodeVersionunicodeVersion(char32_t ucs4)
booloperator!=(QChar c1, QChar c2)
booloperator<(QChar c1, QChar c2)
QDataStream &operator<<(QDataStream &out, QChar chr)
booloperator<=(QChar c1, QChar c2)
booloperator==(QChar c1, QChar c2)
booloperator>(QChar c1, QChar c2)
booloperator>=(QChar c1, QChar c2)
QDataStream &operator>>(QDataStream &in, QChar &chr)

宏定义

(自6.0版本起) QT_IMPLICIT_QCHAR_CONSTRUCTION

详细说明

在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定义的类别。其中一些也计算派生属性(例如,isSpace()如果字符是分隔符_*或来自Other_Control类别的异常代码点,则返回true)。

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

组合Unicode字符(如ring)可以通过使用decomposition()转换为分解Unicode(“a”后跟“ring above”)。

在Unicode编码中,比较在多数情况下是不可行的,且大小写转换也极为困难。Unicode覆盖了“整个”世界,也包含了世界大多数的大小写和排序问题。operator==()及其相关函数将基于数字Unicode值(码点)进行比较,而当字符具有良好定义的大小写等效关系时,toUpper()和toLower()将执行大小写转换。对于与地区相关的比较,请使用QString::localeAwareCompare()。

转换函数包括unicode()(转换为标量)、toLatin1()(转换为标量,但将所有非Latin-1字符转换为0)、row()(提供Unicode行)、cell()(提供Unicode单元)、digitValue()(提供众多数字字符中的整数值)以及许多构造函数。

QChar提供了构造函数和类型转换运算符,使得从传统8位char到QChar及其反向转换变得简单。如果你在QString文档中定义了QT_NO_CAST_FROM_ASCIIQT_NO_CAST_TO_ASCII,将需要显式调用fromLatin1(),或者使用QLatin1Char来从8位char构造QChar,并且你需要调用toLatin1()来获取8位值。

从Qt 6.0开始,大多数QChar构造函数都是explicit。这样做是为了避免在意外混合整型类型和字符串时发生危险错误。你可以通过定义宏QT_IMPLICIT_QCHAR_CONSTRUCTION来取消订阅(并将这些构造函数变为隐式)。

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

另请参阅UnicodeQStringQLatin1Char

成员类型文档

枚举QChar::Category

此枚举映射Unicode字符类别。

以下字符在Unicode中是规范性的:

常数描述
QChar::Mark_NonSpacing0Unicode类名Mn
QChar::Mark_SpacingCombining1Unicode类名Mc
QChar::Mark_Enclosing2Unicode类名Me
QChar::Number_DecimalDigit3Unicode类名Nd
QChar::Number_Letter4Unicode类名Nl
QChar::Number_Other5Unicode类名No
QChar::Separator_Space6Unicode类名Zs
QChar::Separator_Line7Unicode类名Zl
QChar::Separator_Paragraph8Unicode类名Zp
QChar::Other_Control9Unicode类名Cc
QChar::Other_Format10Unicode类名 Cf
QChar::Other_Surrogate11Unicode类名Cs
QChar::Other_PrivateUse12Unicode类名Co
QChar::Other_NotAssigned13Unicode类名Cn

以下类别在Unicode中是信息性的:

常数描述
QChar::Letter_Uppercase14Unicode类名Lu
QChar::Letter_Lowercase15Unicode类名Ll
QChar::Letter_Titlecase16Unicode类名Lt
QChar::Letter_Modifier17Unicode类名Lm
QChar::Letter_Other18Unicode类名Lo
QChar::Punctuation_Connector19Unicode类名Pc
QChar::Punctuation_Dash20Unicode类名Pd
QChar::Punctuation_Open21Unicode类名Ps
QChar::Punctuation_Close22Unicode类名Pe
QChar::Punctuation_InitialQuote23Unicode类名Pi
QChar::Punctuation_FinalQuote24Unicode类名Pf
QChar::Punctuation_Other25Unicode类名Po
QChar::Symbol_Math26Unicode类名称Sm
QChar::CurrencySymbol27Unicode类名称Sc
QChar::ModifierSymbol28Unicode类名称Sk
QChar::OtherSymbol29Unicode类名称So

另请参阅类别

枚举 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

另请参阅分解

枚举 QChar::Direction

此枚举类型定义了Unicode方向属性。有关值的描述,请参阅Unicode标准

为了符合C/C++命名约定,"Dir"被添加到Unicode标准中使用的代码中。

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

另请参阅方向

枚举 QChar::JoiningType

自5.3起

此枚举类型定义了Unicode联合类型属性。有关值的描述,请参阅Unicode标准

为了符合C/C++命名约定,"Joining_"被添加到Unicode标准中使用的代码中。

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

另请参阅联合类型

枚举 QChar::Script

此枚举类型定义了Unicode书写系统属性值。

有关Unicode书写系统属性值的详细信息,请参阅Unicode标准附录#24

为了符合C/C++命名约定,"Script_"被添加到Unicode标准中使用的代码中。

常数描述
QChar::Script_Unknown0对于未分配、专用、非字符和非代理代码点。
QChar::Script_Inherited1对于可以与多个书写系统一起使用并且从前一个字符继承其书写系统的字符。这包括非断开符号、包围符号和零宽度连接器/非连接器字符。
QChar::Script_Common2对于可以与多个书写系统一起使用但不从前一个字符继承其书写系统的字符。
QChar::Script_Adlam(自Qt 5.11起)132 
QChar::Script_Ahom(自Qt 5.6起)126 
QChar::Script_AnatolianHieroglyphs(自Qt 5.6起)127 
QChar::Script_Arabic8 
QChar::Script_Armenian6 
QChar::Script_Avestan80 
QChar::Script_Balinese62 
QChar::Script_Bamum84 
QChar::Script_BassaVah(自Qt 5.5起)104 
QChar::Script_Batak93 
QChar::Script_Bengali12 
QChar::Script_Bhaiksuki(自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(自Qt 5.5起)103 
QChar::Script_Chakma96 
QChar::Script_Cham77 
QChar::Script_Cherokee28 
QChar::Script_Chorasmian(自Qt 5.15起)153 
QChar::Script_Coptic46 
QChar::Script_Cuneiform63 
QChar::Script_Cypriot53 
QChar::Script_CyproMinoan (自 Qt 6.3)157 
QChar::Script_Cyrillic5 
QChar::Script_Deseret41 
QChar::Script_Devanagari11 
QChar::Script_DivesAkuru (自 Qt 5.15)154 
QChar::Script_Dogra (自 Qt 5.15)142 
QChar::Script_Duployan (自 Qt 5.5)105 
QChar::Script_EgyptianHieroglyphs81 
QChar::Script_Elbasan (自 Qt 5.5)106 
QChar::Script_Elymaic (自 Qt 5.15)149 
QChar::Script_Ethiopic27 
QChar::Script_Georgian25 
QChar::Script_Glagolitic57 
QChar::Script_Gothic40 
QChar::Script_Grantha (自 Qt 5.5)107 
QChar::Script_Greek4 
QChar::Script_Gujarati14 
QChar::Script_GunjalaGondi (自 Qt 5.15)143 
QChar::Script_Gurmukhi13 
QChar::Script_Han37 
QChar::Script_Hangul26 
QChar::Script_HanifiRohingya (自 Qt 5.15)144 
QChar::Script_Hanunoo43 
QChar::Script_Hatran (自 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 (自 Qt 6.5)162 
QChar::Script_KayahLi72 
QChar::Script_Kharoshthi61 
QChar::Script_KhitanSmallScript (自 Qt 5.15)155 
QChar::Script_Khmer32 
QChar::Script_Khojki (自 Qt 5.5)109 
QChar::Script_Khudawadi (自 Qt 5.5)123 
QChar::Script_Lao22 
QChar::Script_Latin3 
QChar::Script_Lepcha68 
QChar::Script_Limbu47 
QChar::Script_LinearA (自 Qt 5.5)110 
QChar::Script_LinearB49 
QChar::Script_Lisu83 
QChar::Script_Lycian74 
QChar::Script_Lydian76 
QChar::Script_Mahajani (自 Qt 5.5)111 
QChar::Script_Makasar (自 Qt 5.15)145 
QChar::Script_Malayalam19 
QChar::Script_Mandaic95 
QChar::Script_Manichaean (自 Qt 5.5)112 
QChar::Script_Marchen (自 Qt 5.11)134 
QChar::Script_MasaramGondi (自 Qt 5.11)138 
QChar::Script_Medefaidrin (自 Qt 5.15)146 
QChar::Script_MeeteiMayek86 
QChar::Script_MendeKikakui (自 Qt 5.5)113 
QChar::Script_MeroiticCursive97 
QChar::Script_MeroiticHieroglyphs98 
QChar::Script_Miao99 
QChar::Script_Modi (自 Qt 5.5)114 
QChar::Script_Mongolian33 
QChar::Script_Mro (自 Qt 5.5)115 
QChar::Script_Multani (自 Qt 5.6)129 
QChar::Script_Myanmar24 
QChar::Script_Nabataean (自 Qt 5.5)117 
QChar::Script_NagMundari (自 Qt 6.3)163 
QChar::Script_Nandinagari (自 Qt 5.15)150 
QChar::Script_Newa (自 Qt 5.11)135 
QChar::Script_NewTaiLue56 
QChar::Script_Nko66 
QChar::Script_Nushu (自 Qt 5.11)139 
QChar::Script_NyiakengPuachueHmong (自 Qt 5.15)151 
QChar::Script_Ogham30 
QChar::Script_OlChiki69 
QChar::Script_OldHungarian (自 Qt 5.6)130 
QChar::Script_OldItalic39 
QChar::Script_OldNorthArabian (自 Qt 5.5)116 
QChar::Script_OldPermic (自 Qt 5.5)120 
QChar::Script_OldPersian60 
QChar::Script_OldSogdian (自 Qt 5.15)147 
QChar::Script_OldSouthArabian88 
QChar::Script_OldTurkic91 
QChar::Script_OldUyghur (自 Qt 6.3)158 
QChar::Script_Oriya15 
QChar::Script_Osage (自 Qt 5.11)136 
QChar::Script_Osmanya52 
QChar::Script_PahawhHmong (自 Qt 5.5)108 
QChar::Script_Palmyrene (自 Qt 5.5)118 
QChar::Script_PauCinHau (自 Qt 5.5)119 
QChar::Script_PhagsPa65 
QChar::Script_Phoenician64 
QChar::Script_PsalterPahlavi (自 Qt 5.5)121 
QChar::Script_Rejang73 
QChar::Script_Runic31 
QChar::Script_Samaritan82 
QChar::Script_Saurashtra71 
QChar::Script_Sharda100 
QChar::Script_Shavian51 
QChar::Script_Siddham (自 Qt 5.5)122 
QChar::Script_SignWriting (自 Qt 5.6)131 
QChar::Script_Sinhala20 
QChar::Script_Sogdian (自 Qt 5.15)148 
QChar::Script_SoraSompeng101 
QChar::Script_Soyombo (自 Qt 5.11)140 
QChar::Script_Sundanese67 
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 (自 Qt 5.11)137 
QChar::Script_Tangsa (自 Qt 6.3)159 
QChar::Script_Telugu17 
QChar::Script_Thaana10 
QChar::Script_Thai21 
QChar::Script_Tibetan23 
QChar::Script_Tifinagh58 
QChar::Script_Tirhuta (自 Qt 5.5)124 
QChar::Script_Toto (自 Qt 6.3)160 
QChar::Script_Ugaritic50 
QChar::Script_Vai70 
QChar::Script_Vithkuqi (自 Qt 6.3)161 
QChar::Script_Wancho (自 Qt 5.15)152 
QChar::Script_WarangCiti (自 Qt 5.5)125 
QChar::Script_Yezidi (自 Qt 5.15)156 
QChar::Script_Yi38 
QChar::Script_ZanabazarSquare (自 Qt 5.11 开始)141 

另请参阅脚本

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 (自 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_26版本 3.2
QChar::Unicode_4_07版本 4.0
QChar::Unicode_4_18版本 4.1
QChar::Unicode_5_09版本 5.0
QChar::Unicode_5_110版本 5.1
QChar::Unicode_5_211版本 5.2
QChar::Unicode_6_012版本 6.0
QChar::Unicode_6_113版本 6.1
QChar::Unicode_6_214版本 6.2
QChar::Unicode_6_3 (自 Qt 5.3 开始)15版本 6.3
QChar::Unicode_7_0 (自 Qt 5.5 开始)16版本 7.0
QChar::Unicode_8_0 (自 Qt 5.6 开始)17版本 8.0
QChar::Unicode_9_0 (自 Qt 5.11 开始)18版本 9.0
QChar::Unicode_10_0 (自 Qt 5.11 开始)19版本 10.0
QChar::Unicode_11_0 (自 Qt 5.15 开始)20版本 11.0
QChar::Unicode_12_0 (自 Qt 5.15 开始)21版本 12.0
QChar::Unicode_12_1 (自 Qt 5.15 开始)22版本 12.1
QChar::Unicode_13_0 (自 Qt 5.15 开始)23版本 13.0
QChar::Unicode_14_0 (自 Qt 6.3 开始)24版本 14.0
QChar::Unicode_15_0 (自 Qt 6.5 开始)25版本 15.0
QChar::Unicode_Unassigned0该值在 Unicode 8.0 版本中没有分配给任何字符。

另请参阅unicodeVersion() 和 currentUnicodeVersion

成员函数文档

[constexpr noexcept] QChar::QChar()

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

另请参阅isNull

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

构造一个具有 Unicode 码点 code 的 QChar。

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

构建用于行 row 中 Unicode 单元 cell 的 QChar。

另请参阅cell() 和 row

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

构造一个具有 Unicode 码点 code 的 QChar。

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

构造一个具有 Unicode 码点 code 的 QChar。

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

构造一个具有 Unicode 码点 code 的 QChar。

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

构建一个用于预定义字符值 ch 的 QChar。

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

构建一个对应于 ASCII/Latin-1 字符 ch 的 QChar。

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

构建一个对应于 UTF-16 字符 ch 的 QChar。

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

构建一个对应于宽字符 ch 的 QChar。

注意:此构造函数只在 Windows 上可用。

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

构建一个对应于 ASCII/Latin-1 字符 ch 的 QChar。

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

另请参阅:QT_NO_CAST_FROM_ASCII

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

构建一个对应于 ASCII/Latin-1 字符 ch 的 QChar。

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

另请参阅:QT_NO_CAST_FROM_ASCIIQT_RESTRICTED_CAST_FROM_ASCII

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

返回字符的类别。

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

这是一个重载函数。

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

注意:在 Qt 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)

这是一个重载函数。

返回由ucs4指定的UCS-4编码字符的组合类别,如Unicode标准中定义。

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

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

返回最新支持的Unicode版本。

QString QChar::decomposition() const

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

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

这是一个重载函数。

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

注意:在 Qt 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 6 之前,此函数接受一个 uint 参数。

[noexcept] int QChar::digitValue() const

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

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

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

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

返回字符的方向。

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

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

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

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

另一种选择是使用QLatin1Char

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

[静态常量异常处理,自6.0版本起] QChar QChar::fromUcs2(char16_t c)

从UTF-16字符c构造一个QChar

此函数自Qt 6.0版本中引入。

另请参阅fromUcs4

[静态常量异常处理,自6.0版本起] R QChar::fromUcs4(char32_t c)

返回一个包含

  • 一个char16_t chars[2]数组
  • ,可以隐式转换为QStringView,并且
  • 可以使用C++11范围for循环迭代。

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

这使得结果容易使用

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

此函数自Qt 6.0版本中引入。

另请参阅fromUcs2requiresSurrogates

[noexcept] bool QChar::hasMirrored() const

如果字符在文本方向反转时应该反转,返回true;否则返回false

(ch.mirroredChar() != ch)的更快的等效方式。

另请参阅mirroredChar

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

这是一个重载函数。

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

(QChar::mirroredChar(ucs4) != ucs4)的更快的等效方式。

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

另请参阅mirroredChar

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

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

注意: 在Qt 6之前,此函数采用uint参数并返回ushort

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

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

另请参阅isNumber

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

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

另请参阅isNumber

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

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

[静态常量例外] bool QChar::isHighSurrogate(char32_t ucs4)

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

[常量例外] bool QChar::isLetter() const

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

[静态常量例外] bool QChar::isLetter(char32_t ucs4)

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

[常量例外] bool QChar::isLetterOrNumber() const

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

[静态常量例外] bool QChar::isLetterOrNumber(char32_t ucs4)

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

[常量例外] bool QChar::isLowSurrogate() const

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

[静态常量例外] bool QChar::isLowSurrogate(char32_t ucs4)

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

[常量例外] bool QChar::isLower() const

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

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

[静态常量例外] bool QChar::isLower(char32_t ucs4)

这是一个重载函数。

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

注意:在 Qt 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 6 之前,此函数接受一个 uint 参数。

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

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

Unicode 有一定数量的代码点被分类为“非字符”:即它们可以在应用程序的内部用途中使用,但不能用于文本交换。这些是每个 Unicode 平面的最后两个条目([0xfffe..0xffff],[0x1fffe..0x1ffff],等等)以及范围 [0xfdd0..0xfdef] 中的条目。

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

这是一个重载函数。

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

Unicode 有一定数量的代码点被分类为“非字符”:即它们可以在应用程序的内部用途中使用,但不能用于文本交换。这些是每个 Unicode 平面的最后两个条目([0xfffe..0xffff],[0x1fffe..0x1ffff],等等)以及范围 [0xfdd0..0xfdef] 中的条目。

注意:在 Qt 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 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 6 之前,此函数接受一个 uint 参数。

[noexcept] bool QChar::isPunct() const

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

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

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

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

如果字符是分隔符字符(分隔符_*类别或来自Other_Control类别的某些代码点),则返回true;否则返回false

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

这是一个重载函数。

如果由ucs4指定的UCS-4编码字符是分隔符字符(分隔符_*类别或来自Other_Control类别的某些代码点),则返回true;否则返回false

注意:在 Qt 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 6 之前,此函数接受一个 uint 参数。

[noexcept] bool QChar::isSymbol() const

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

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

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

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

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

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

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

这是一个重载函数。

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

注意:在 Qt 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)

这是一个重载函数。

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

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

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

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

返回关于字符的连接类型属性的信息(例如阿拉伯语或叙利亚语等语言所需)。

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

这是一个重载函数。

返回关于UCS-4编码字符 ucs4 的连接类型属性的信息(例如阿拉伯语或叙利亚语等语言所需)。

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

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

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

注意: 在Qt 6之前,此函数采用uint参数并返回ushort

[noexcept] QChar QChar::mirroredChar() const

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

另请参阅hasMirrored

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

这是一个重载函数。

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

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

另请参阅hasMirrored

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

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

注意:在 Qt 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编码形式 ucs4 的字符的Unicode脚本属性值。

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

[静态常量无非抛出异常] char32_t QChar::surrogateToUcs4(char16_t high, char16_t low)

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

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

[静态常量无非抛出异常] char32_t QChar::surrogateToUcs4(QChar high, QChar low)

这是一个重载函数。

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

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

[无不抛出异常] QChar QChar::toCaseFolded() const

返回字符的大小写折叠等效形式。对于大多数 Unicode 字符,这和 toLower() 一样。

[静态无不抛出异常] char32_t QChar::toCaseFolded(char32_t ucs4)

这是一个重载函数。

返回由 ucs4 指定的 UCS-4 编码字符的大小写折叠等效形式。对于大多数 Unicode 字符,这和 toLower() 一样。

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

[ constexpr无不抛出异常] char QChar::toLatin1() const

返回与 QChar 相等的拉丁-1 字符,或 0。这对于非国际化软件很有用。

注意:无法区分非拉丁-1 字符和拉丁-1 0(空值)字符。建议使用 unicode(),它不具有这种歧义。

另请参阅:unicode()。

[无不抛出异常] QChar QChar::toLower() const

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

[静态无不抛出异常] char32_t QChar::toLower(char32_t ucs4)

这是一个重载函数。

如果由 ucs4 指定的字符是大写或标题大小写,则返回其小写等效形式;否则返回字符本身。

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

[无不抛出异常] QChar QChar::toTitleCase() const

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

[静态无不抛出异常] char32_t QChar::toTitleCase(char32_t ucs4)

这是一个重载函数。

如果由 ucs4 指定的字符是小写或大写,则返回其标题大小写等效形式;否则返回字符本身。

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

[无不抛出异常] QChar QChar::toUpper() const

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

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

这是一个重载函数。

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

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

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

返回 QChar 的数值 Unicode 值。

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

返回对 QChar 的数值 Unicode 值的引用。

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

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

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

这是一个重载函数。

返回引入形式为 ucs4 的 Unicode 编码字符的 Unicode 版本。

注意:在 Qt 6 之前,此函数接受一个 uint 参数。

相关非成员函数

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

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

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

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

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

将字符 chr 写入流 out

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

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

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

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

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

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

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

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

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

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

从流 in 读取一个字符到字符 chr

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

宏文档

[since 6.0] QT_IMPLICIT_QCHAR_CONSTRUCTION

定义此宏会使某些 QChar 构造函数成为隐式而非显式的。这是为了强制进行安全转换

QString str = getString();
if (str == 123) {
    // Oops, meant str == "123". By default does not compile,
    // *unless* this macro is defined, in which case, it's interpreted
    // as `if (str == QChar(123))`, that is, `if (str == '{')`.
    // Likely, not what we meant.
}

此宏提供以保持现有代码正常工作;建议使用显式转换以及/或 QLatin1Char。例如

QChar c1 =  'x'; // OK, unless QT_NO_CAST_FROM_ASCII is defined
QChar c2 = u'x'; // always OK, recommended
QChar c3 = QLatin1Char('x'); // always OK, recommended

// from int to 1 UTF-16 code unit: must guarantee that the input is <= 0xFFFF
QChar c4 = 120;        // compile error, unless QT_IMPLICIT_QCHAR_CONSTRUCTION is defined
QChar c5(120);         // OK (direct initialization)
auto  c6 = QChar(120); // ditto

// from int/char32_t to 1/2 UTF-16 code units:
// 𝄞 'MUSICAL SYMBOL G CLEF' (U+1D11E)
auto c7 = QChar(0x1D11E);           // compiles, but undefined behavior at runtime
auto c8 = QChar::fromUcs4(0x1D11E);       // always OK
auto c9 = QChar::fromUcs4(U'\U0001D11E'); // always OK
// => use c8/c9 as QStringView objects

此宏是在 Qt 6.0 中引入的。

另请参阅QLatin1CharQChar::fromUcs4 以及 QT_NO_CAST_FROM_ASCII

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献归其各自所有者版权所有。本文件提供的文档受 GNU 自由文档许可证版本 1.3 许可,该许可证由自由软件基金会发布。Qt 和相关的标志是芬兰以及/或全球其他地区的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。