Spec-Zone.ru › Qt 6.1

Класс QChar

Класс QChar предоставляет 16-битный символ Unicode. Подробнее...

Заголовок: #include <QChar>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Открытые типы

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(uchar ch)
QChar(char ch)
QChar(wchar_t ch)
QChar(char16_t ch)
QChar(QLatin1Char ch)
QChar(QChar::SpecialCharacter ch)
QChar(int code)
QChar(uint code)
QChar(short code)
QChar(uchar cell, uchar row)
QChar(ushort code)
QChar()
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() const
char16_t & unicode()
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)
QChar fromUcs2(char16_t c)
R 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!=(QChar c1, QChar c2)
bool operator<(QChar c1, QChar c2)
QDataStream & operator<<(QDataStream &out, QChar chr)
bool operator<=(QChar c1, QChar c2)
bool operator==(QChar c1, QChar c2)
bool operator>(QChar c1, QChar c2)
bool operator>=(QChar c1, QChar c2)
QDataStream & operator>>(QDataStream &in, QChar &chr)

Макросы

QT_IMPLICIT_QCHAR_CONSTRUCTION

Подробное описание

В Qt, символы Юникода — это 16-битные сущности без каких-либо пометок или структуры. Этот класс представляет собой такую сущность. Он лёгкий, поэтому может использоваться везде. Большинство компиляторов обрабатывают его как unsigned short.

QChar предоставляет полный набор функций проверки/классификации, преобразования в и из других форматов, преобразования от составленных к разложенным символам Юникода и попытки сравнения и преобразования регистров, если вы об этом попросите.

Функции классификации включают функции, аналогичные функциям в стандартном заголовке C++ <cctype> (ранее <ctype.h>), но работающие с полным диапазоном символов Юникода, а не только с диапазоном ASCII. Все они возвращают true, если символ относится к определённому типу; в противном случае возвращают false. Эти функции классификации включают isNull() (возвращает true если символ равен '\0'), isPrint() (true, если символ — любой печатаемый символ, включая пробелы), isPunct() (любой символ пунктуации), isMark() (метка Юникода), isLetter() (буква), isNumber() (любой числовой символ, а не только 0-9), isLetterOrNumber() и isDigit() (десятичные цифры). Все эти функции являются обёртками вокруг category(), которые возвращают категорию, определённую Юникодом, для каждого символа. Некоторые из них также вычисляют производные свойства (например, isSpace() возвращает true если символ относится к категории Separator_* или является исключительным кодом из категории Other_Control).

QChar также предоставляет direction(), которая указывает «естественное» направление письма для этого символа. Функция joiningType() указывает, как символ соединяется со своими соседями (это необходимо в основном для арабского или сирийского) и, наконец, hasMirrored(), которая указывает, нужно ли отображать символ зеркально, когда он печатается в «неестественном» направлении письма.

Комбинированные символы Юникода (например, ring) можно преобразовать в разложенные символы Юникода ("a" за которым следует "ring above"), используя разложение().

В Юникоде сравнение не всегда возможно, а преобразование регистра — в лучшем случае очень сложно. Юникода, охватывающая «весь» мир, также включает в себя большинство проблем с регистром и сортировкой в мире. оператор==() и его аналоги будут выполнять сравнение, основываясь исключительно на числовом значении Юникода (кодовом точке) символов, а toUpper() и toLower() будут выполнять преобразование регистра, когда у символа есть хорошо определённый эквивалент верхнего/нижнего регистра. Для сравнений, зависящих от региональных настроек, используйте QString::localeAwareCompare().

Функции преобразования включают unicode() (в скаляр), toLatin1() (в скаляр, но преобразует все символы, не являющиеся Latin-1, в 0), row() (возвращает строку Юникода), cell() (возвращает ячейку Юникода), digitValue() (возвращает целочисленное значение любого из многочисленных символов цифр) и множество конструкторов.

QChar предоставляет конструкторы и операторы приведения типов, которые упрощают преобразование в традиционные 8-битные char и обратно. Если вы определили QT_NO_CAST_FROM_ASCII и QT_NO_CAST_TO_ASCII, как описано в документации QString, вам необходимо явно вызвать fromLatin1() или использовать QLatin1Char для создания QChar из 8-битного char, а также вызвать toLatin1() для получения 8-битного значения обратно.

Начиная с Qt 6.0, большинство конструкторов QChar explicit. Это делается для предотвращения опасных ошибок при случайном смешивании целочисленных типов и строк. Вы можете отказаться от этого (и сделать эти конструкторы неявными), определив макрос QT_IMPLICIT_QCHAR_CONSTRUCTION.

Дополнительную информацию см. в "Базе данных символов Юникода".

См. также Юникод, QString и QLatin1Char.

Документация по типам членов

enum QChar::Category

Этот перечисление сопоставляет категории символов Юникода.

В Юникоде следующие символы являются нормативными:

Постоянная Значение Описание
QChar::Mark_NonSpacing 0 Имя класса Юникода Mn
QChar::Mark_SpacingCombining 1 Имя класса Юникода Mc
QChar::Mark_Enclosing 2 Имя класса Юникода Me
QChar::Number_DecimalDigit 3 Имя класса Юникода Nd
QChar::Number_Letter 4 Имя класса Юникода Nl
QChar::Number_Other 5 Имя класса Юникода No
QChar::Separator_Space 6 Имя класса Юникода Zs
QChar::Separator_Line 7 Имя класса Юникода Zl
QChar::Separator_Paragraph 8 Имя класса Юникода Zp
QChar::Other_Control 9 Имя класса Юникода Cc
QChar::Other_Format 10 Имя класса Юникода Cf
QChar::Other_Surrogate 11 Имя класса Юникода Cs
QChar::Other_PrivateUse 12 Имя класса Юникода Co
QChar::Other_NotAssigned 13 Имя класса Юникода Cn

Следующие категории являются информативными в Юникоде:

Постоянная Значение Описание
QChar::Letter_Uppercase 14 Имя класса Юникода Lu
QChar::Letter_Lowercase 15 Имя класса Юникода Ll
QChar::Letter_Titlecase 16 Имя класса Юникода Lt
QChar::Letter_Modifier 17 Имя класса Юникода Lm
QChar::Letter_Other 18 Имя класса Юникода Lo
QChar::Punctuation_Connector 19 Имя класса Юникода Pc
QChar::Punctuation_Dash 20 Имя класса Юникода Pd
QChar::Punctuation_Open 21 Имя класса Юникода Ps
QChar::Punctuation_Close 22 Имя класса Юникода Pe
QChar::Punctuation_InitialQuote 23 Имя класса Юникода Pi
QChar::Punctuation_FinalQuote 24 Имя класса Юникода Pf
QChar::Punctuation_Other 25 Имя класса Юникода Po
QChar::Symbol_Math 26 Имя класса Юникода Sm
QChar::Symbol_Currency 27 Имя класса Юникода Sc
QChar::Symbol_Modifier 28 Имя класса Юникода Sk
QChar::Symbol_Other 29 Имя класса Юникода So

См. также category().

enum QChar::Decomposition

Этот тип перечисления определяет атрибуты разложения Юникода. См. Стандарт Юникода для описания значений.

Постоянная Значение
QChar::NoDecomposition 0
QChar::Canonical 1
QChar::Circle 8
QChar::Compat 16
QChar::Final 6
QChar::Font 2
QChar::Fraction 17
QChar::Initial 4
QChar::Isolated 7
QChar::Medial 5
QChar::Narrow 13
QChar::NoBreak 3
QChar::Small 14
QChar::Square 15
QChar::Sub 10
QChar::Super 9
QChar::Vertical 11
QChar::Wide 12

См. также decomposition().

enum QChar::Direction

Этот тип перечисления определяет атрибуты направления Юникода. См. Стандарт Юникода для описания значений.

Для соответствия соглашениям об именах C/C++, к кодам, используемым в Стандарте Юникода, добавляется префикс "Dir".

END_OF_DOCUMENT_MARKER
Константа Значение Описание
QChar::DirAL 13
QChar::DirAN 5
QChar::DirB 7
QChar::DirBN 18
QChar::DirCS 6
QChar::DirEN 2
QChar::DirES 3
QChar::DirET 4
QChar::DirFSI 21 С Qt 5.3
QChar::DirL 0
QChar::DirLRE 11
QChar::DirLRI 19 С Qt 5.3
QChar::DirLRO 12
QChar::DirNSM 17
QChar::DirON 10
QChar::DirPDF 16
QChar::DirPDI 22 С Qt 5.3
QChar::DirR 1
QChar::DirRLE 14
QChar::DirRLI 20 С Qt 5.3
QChar::DirRLO 15
QChar::DirS 8
QChar::DirWS 9

См. также direction().

перечисление QChar::JoiningType

с 5.3

Это перечисление определяет атрибуты типа слияния Юникода. Для описания значений обратитесь к стандарту Юникода.

Для соответствия соглашениям о наименовании C/C++ к кодам, используемым в стандарте Юникода, добавлено "Joining_".

Константа Значение
QChar::Joining_None 0
QChar::Joining_Causing 1
QChar::Joining_Dual 2
QChar::Joining_Right 3
QChar::Joining_Left 4
QChar::Joining_Transparent 5

См. также joiningType().

[since 5.1] перечисление QChar::Script

Это перечисление определяет значения свойств скрипта Юникода.

Подробную информацию о значениях свойства скрипта Юникода см. в приложении к стандарту Юникода №24.

Для соответствия соглашениям о наименовании C/C++ к кодам, используемым в стандарте Юникода, добавлено "Script_".

Константа Значение Описание
QChar::Script_Unknown 0 Для неназначенных, служебных, несимвольных и суррогатных кодовых точек.
QChar::Script_Inherited 1 Для символов, которые могут использоваться с несколькими письменностями и наследуют свою письменность от предыдущих символов. К ним относятся знаки без пробела, ограничительные знаки и символы объединения/разъединения нулевой ширины.
QChar::Script_Common 2 Для символов, которые могут использоваться с несколькими письменностями и не наследуют свою письменность от предыдущих символов.
QChar::Script_Adlam 132 С Qt 5.11
QChar::Script_Ahom 126 С Qt 5.6
QChar::Script_AnatolianHieroglyphs 127 С Qt 5.6
QChar::Script_Arabic 8
QChar::Script_Armenian 6
QChar::Script_Avestan 80
QChar::Script_Balinese 62
QChar::Script_Bamum 84
QChar::Script_BassaVah 104 С Qt 5.5
QChar::Script_Batak 93
QChar::Script_Bengali 12
QChar::Script_Bhaiksuki 133 С Qt 5.11
QChar::Script_Bopomofo 36
QChar::Script_Brahmi 94
QChar::Script_Braille 54
QChar::Script_Buginese 55
QChar::Script_Buhid 44
QChar::Script_CanadianAboriginal 29
QChar::Script_Carian 75
QChar::Script_CaucasianAlbanian 103 С Qt 5.5
QChar::Script_Chakma 96
QChar::Script_Cham 77
QChar::Script_Cherokee 28
QChar::Script_Chorasmian 153 С Qt 5.15
QChar::Script_Coptic 46
QChar::Script_Cuneiform 63
QChar::Script_Cypriot 53
QChar::Script_Cyrillic 5
QChar::Script_Deseret 41
QChar::Script_Devanagari 11
QChar::Script_DivesAkuru 154 С Qt 5.15
QChar::Script_Dogra 142 С Qt 5.15
QChar::Script_Duployan 105 С Qt 5.5
QChar::Script_EgyptianHieroglyphs 81
QChar::Script_Elbasan 106 С Qt 5.5
QChar::Script_Elymaic 149 С Qt 5.15
QChar::Script_Ethiopic 27
QChar::Script_Georgian 25
QChar::Script_Glagolitic 57
QChar::Script_Gothic 40
QChar::Script_Grantha 107 С Qt 5.5
QChar::Script_Greek 4
QChar::Script_Gujarati 14
QChar::Script_GunjalaGondi 143 С Qt 5.15
QChar::Script_Gurmukhi 13
QChar::Script_Han 37
QChar::Script_Hangul 26
QChar::Script_HanifiRohingya 144 С Qt 5.15
QChar::Script_Hanunoo 43
QChar::Script_Hatran 128 С Qt 5.6
QChar::Script_Hebrew 7
QChar::Script_Hiragana 34
QChar::Script_ImperialAramaic 87
QChar::Script_InscriptionalPahlavi 90
QChar::Script_InscriptionalParthian 89
QChar::Script_Javanese 85
QChar::Script_Kaithi 92
QChar::Script_Kannada 18
QChar::Script_Katakana 35
QChar::Script_KayahLi 72
QChar::Script_Kharoshthi 61
QChar::Script_KhitanSmallScript 155 С Qt 5.15
QChar::Script_Khmer 32
QChar::Script_Khojki 109 С Qt 5.5
QChar::Script_Khudawadi 123 С Qt 5.5
QChar::Script_Lao 22
QChar::Script_Latin 3
QChar::Script_Lepcha 68
QChar::Script_Limbu 47
QChar::Script_LinearA 110 С Qt 5.5
QChar::Script_LinearB 49
QChar::Script_Lisu 83
QChar::Script_Lycian 74
QChar::Script_Lydian 76
QChar::Script_Mahajani 111 С Qt 5.5
QChar::Script_Makasar 145 С Qt 5.15
QChar::Script_Malayalam 19
QChar::Script_Mandaic 95
QChar::Script_Manichaean 112 С Qt 5.5
QChar::Script_Marchen 134 С Qt 5.11
QChar::Script_MasaramGondi 138 С Qt 5.11
QChar::Script_Medefaidrin 146 С Qt 5.15
QChar::Script_MeeteiMayek 86
QChar::Script_MendeKikakui 113 С Qt 5.5
QChar::Script_MeroiticCursive 97
QChar::Script_MeroiticHieroglyphs 98
QChar::Script_Miao 99
QChar::Script_Modi 114 С Qt 5.5
QChar::Script_Mongolian 33
QChar::Script_Mro 115 С Qt 5.5
QChar::Script_Multani 129 С Qt 5.6
QChar::Script_Myanmar 24
QChar::Script_Nabataean 117 С Qt 5.5
QChar::Script_Nandinagari 150 С Qt 5.15
QChar::Script_Newa 135 С Qt 5.11
QChar::Script_NewTaiLue 56
QChar::Script_Nko 66
QChar::Script_Nushu 139 С Qt 5.11
QChar::Script_NyiakengPuachueHmong 151 С Qt 5.15
QChar::Script_Ogham 30
QChar::Script_OlChiki 69
QChar::Script_OldHungarian 130 С Qt 5.6
QChar::Script_OldItalic 39
QChar::Script_OldNorthArabian 116 С Qt 5.5
QChar::Script_OldPermic 120 С Qt 5.5
QChar::Script_OldPersian 60
QChar::Script_OldSogdian 147 С Qt 5.15
QChar::Script_OldSouthArabian 88
QChar::Script_OldTurkic 91
QChar::Script_Oriya 15
QChar::Script_Osage 136 С Qt 5.11
QChar::Script_Osmanya 52
QChar::Script_PahawhHmong 108 С Qt 5.5
QChar::Script_Palmyrene 118 С Qt 5.5
QChar::Script_PauCinHau 119 С Qt 5.5
QChar::Script_PhagsPa 65
QChar::Script_Phoenician 64
QChar::Script_PsalterPahlavi 121 С Qt 5.5
QChar::Script_Rejang 73
QChar::Script_Runic 31
QChar::Script_Samaritan 82
QChar::Script_Saurashtra 71
QChar::Script_Sharada 100
QChar::Script_Shavian 51
QChar::Script_Siddham 122 С Qt 5.5
QChar::Script_SignWriting 131 С Qt 5.6
QChar::Script_Sinhala 20
QChar::Script_Sogdian 148 С Qt 5.15
QChar::Script_SoraSompeng 101
QChar::Script_Soyombo 140 С Qt 5.11
QChar::Script_Sundanese 67
QChar::Script_SylotiNagri 59
QChar::Script_Syriac 9
QChar::Script_Tagalog 42
QChar::Script_Tagbanwa 45
QChar::Script_TaiLe 48
QChar::Script_TaiTham 78
QChar::Script_TaiViet 79
QChar::Script_Takri 102
QChar::Script_Tamil 16
QChar::Script_Tangut 137 С Qt 5.11
QChar::Script_Telugu 17
QChar::Script_Thaana 10
QChar::Script_Thai 21
QChar::Script_Tibetan 23
QChar::Script_Tifinagh 58
END_OF_DOCUMENT_MARKER
QChar::Script_Tirhuta 124 С Qt 5.5
QChar::Script_Ugaritic 50
QChar::Script_Vai 70
QChar::Script_Wancho 152 С Qt 5.15
QChar::Script_WarangCiti 125 С Qt 5.5
QChar::Script_Yezidi 156 С Qt 5.15
QChar::Script_Yi 38
QChar::Script_ZanabazarSquare 141 С Qt 5.11

Этот перечисление был введён или изменён в Qt 5.1.

См. также script().

enum QChar::SpecialCharacter

Постоянная Значение Описание
QChar::Null 0x0000 QChar с таким значением isNull().
QChar::Tabulation 0x0009 Горизонтальная табуляция.
QChar::LineFeed 0x000a
QChar::FormFeed 0x000c
QChar::CarriageReturn 0x000d
QChar::Space 0x0020
QChar::Nbsp 0x00a0 Неразрывный пробел.
QChar::SoftHyphen 0x00ad
QChar::ReplacementCharacter 0xfffd Символ, отображаемый, когда в шрифте нет глифа для определённого кода. Часто используется специальный знак вопроса. Кодеки используют этот код, когда входные данные не могут быть представлены в Unicode.
QChar::ObjectReplacementCharacter 0xfffc Используется для представления объекта, такого как изображение, когда такие объекты не могут быть представлены.
QChar::ByteOrderMark 0xfeff
QChar::ByteOrderSwapped 0xfffe
QChar::ParagraphSeparator 0x2029
QChar::LineSeparator 0x2028
QChar::LastValidCodePoint 0x10ffff

enum QChar::UnicodeVersion

Указывает, какая версия стандарта Unicode ввела определённый символ.

Постоянная Значение Описание
QChar::Unicode_1_1 1 Версия 1.1
QChar::Unicode_2_0 2 Версия 2.0
QChar::Unicode_2_1_2 3 Версия 2.1.2
QChar::Unicode_3_0 4 Версия 3.0
QChar::Unicode_3_1 5 Версия 3.1

См. также unicodeVersion() и currentUnicodeVersion().

Документация функций-членов

QChar::QChar(uchar ch)

Создаёт QChar, соответствующий символу ASCII/Latin-1 ch.

Примечание: Этот конструктор недоступен, когда QT_NO_CAST_FROM_ASCII или QT_RESTRICTED_CAST_FROM_ASCII определены.

См. также QT_NO_CAST_FROM_ASCII и QT_RESTRICTED_CAST_FROM_ASCII.

QChar::QChar(char ch)

Создаёт QChar, соответствующий символу ASCII/Latin-1 ch.

Примечание: Этот конструктор недоступен, когда QT_NO_CAST_FROM_ASCII определён.

См. также QT_NO_CAST_FROM_ASCII.

[since 5.10] QChar::QChar(wchar_t ch)

Создаёт QChar, соответствующий широкому символу ch.

Примечание: Этот конструктор доступен только на Windows.

Эта функция была добавлена в Qt 5.10.

[since 5.10] QChar::QChar(char16_t ch)

Создаёт QChar, соответствующий UTF-16 символу ch.

Эта функция была добавлена в Qt 5.10.

QChar::QChar(QLatin1Char ch)

Создаёт QChar, соответствующий символу ASCII/Latin-1 ch.

QChar::QChar(QChar::SpecialCharacter ch)

Создаёт QChar для предопределённого значения символа ch.

QChar::QChar(int code)

Создаёт QChar для символа с кодом Unicode code.

QChar::QChar(uint code)

Создаёт QChar для символа с кодом Unicode code.

QChar::QChar(short code)

Создаёт QChar для символа с кодом Unicode code.

QChar::QChar(uchar cell, uchar row)

Создаёт QChar для ячейки Unicode cell в строке row.

END_OF_DOCUMENT_MARKER

См. также cell() и row().

QChar::QChar(ushort code)

Создаёт QChar для символа с кодом Юникода code.

QChar::QChar()

Создаёт нулевой QChar ('\0').

См. также isNull().

QChar::Category QChar::category() const

Возвращает категорию символа.

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

Это перегруженный метод.

Возвращает категорию символа, закодированного в UCS-4, указанного параметром ucs4.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

uchar QChar::cell() const

Возвращает ячейку (самый младший байт) символа Юникода.

См. также row().

unsigned char QChar::combiningClass() const

Возвращает класс объединения для символа, как определено в стандарте Юникод. Это в основном полезно как подсказка для позиционирования знаков, прикрепленных к базовому символу.

Движок Qt для рендеринга текста использует эту информацию для правильного позиционирования знаков без пробелов вокруг базового символа.

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

Это перегруженный метод.

Возвращает класс объединения для символа, закодированного в UCS-4, указанного параметром ucs4, как определено в стандарте Юникод.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

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

Возвращает последнюю поддерживаемую версию Юникода.

QString QChar::decomposition() const

Разлагает символ на составные части. Возвращает пустую строку, если разложение отсутствует.

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

Это перегруженный метод.

Разлагает символ, закодированный в UCS-4, указанный параметром ucs4, на составные части. Возвращает пустую строку, если разложение отсутствует.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

QChar::Decomposition QChar::decompositionTag() const

Возвращает тег, определяющий состав символа. Возвращает QChar::NoDecomposition, если разложение отсутствует.

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

Это перегруженный метод.

Возвращает тег, определяющий состав символа, закодированного в UCS-4, указанного параметром ucs4. Возвращает QChar::NoDecomposition, если разложение отсутствует.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

int QChar::digitValue() const

Возвращает числовое значение цифры или -1, если символ не является цифрой.

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

Это перегруженный метод.

Возвращает числовое значение цифры, заданной символом, закодированным в UCS-4, ucs4, или -1, если символ не является цифрой.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

QChar::Direction QChar::direction() const

Возвращает направление символа.

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

Это перегруженный метод.

Возвращает направление символа, закодированного в UCS-4, указанного параметром ucs4.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

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

Преобразует символ Latin-1 c в эквивалентный QChar. Это в основном полезно для программного обеспечения без локализации.

Альтернативой является использование QLatin1Char.

См. также toLatin1() и unicode().

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

Создаёт QChar из символа UTF-16 c.

Эта функция была добавлена в Qt 6.0.

См. также fromUcs4().

[static, since 6.0] R QChar::fromUcs4(char32_t c)

Возвращает анонимную структуру,

  • содержащую массив char16_t chars[2],
  • которая может быть неявно преобразована в QStringView, и
  • по которой можно итерироваться с помощью цикла диапазона C++11.

Если c требует суррогатов, chars[0] содержит старший суррогат и chars[1] — младший суррогат, и QStringView имеет размер 2. В противном случае, chars[0] содержит c и chars[1] имеет значение null, а QStringView имеет размер 1.

Это позволяет легко использовать результат:

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

Эта функция была добавлена в Qt 6.0.

См. также fromUcs2() и requiresSurrogates().

bool QChar::hasMirrored() const

Возвращает true, если символ должен быть перевёрнут при изменении направления текста; в противном случае возвращает false.

Более быстрый эквивалент (ch.mirroredChar() != ch).

См. также mirroredChar().

[static, since 5.0] bool QChar::hasMirrored(char32_t ucs4)

Это перегруженный метод.

Возвращает true, если символ, закодированный в UCS-4, указанный параметром ucs4, должен быть перевёрнут при изменении направления текста; в противном случае возвращает false.

Более быстрый эквивалент (QChar::mirroredChar(ucs4) != ucs4).

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

Эта функция была добавлена в Qt 5.0.

См. также mirroredChar().

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

Возвращает старшую часть суррогата UCS-4 кодового элемента. Результат неопределён, если ucs4 меньше 0x10000.

Примечание: Перед Qt 6 этот метод принимал uint аргумент и возвращал ushort.

bool QChar::isDigit() const

Возвращает true если символ является десятичной цифрой (Number_DecimalDigit); в противном случае возвращает false.

См. также isNumber().

[static, since 5.0] bool QChar::isDigit(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ, закодированный в UCS-4, указанный параметром ucs4, является десятичной цифрой (Number_DecimalDigit); в противном случае возвращает false.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

Эта функция была добавлена в Qt 5.0.

См. также isNumber().

bool QChar::isHighSurrogate() const

Возвращает true если QChar является старшей частью суррогата UTF16 (например, если его кодовое значение находится в диапазоне [0xd800..0xdbff]); в противном случае возвращает false.

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

Это перегруженный метод.

Возвращает true если символ, закодированный в UCS-4, указанный параметром ucs4, является старшей частью суррогата UTF16 (например, если его кодовое значение находится в диапазоне [0xd800..0xdbff]); в противном случае возвращает false.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

bool QChar::isLetter() const

Возвращает true если символ является буквой (категории Letter_*); в противном случае возвращает false.

[static, since 5.0] bool QChar::isLetter(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ, закодированный в UCS-4, указанный параметром ucs4, является буквой (категории Letter_*); в противном случае возвращает false.

Примечание: Перед Qt 6 этот метод принимал uint аргумент.

Эта функция была добавлена в Qt 5.0.

bool QChar::isLetterOrNumber() const

Возвращает true если символ является буквой или цифрой (категории Letter_* или Number_*); в противном случае возвращает false.

[static, since 5.0] bool QChar::isLetterOrNumber(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является буквой или цифрой (категории Letter_* или Number_*); в противном случае возвращает false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

bool QChar::isLowSurrogate() const

Возвращает true если QChar является нижней частью суррогата UTF16 (например, если его код находится в диапазоне [0xdc00..0xdfff]); в противном случае возвращает false.

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

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является нижней частью суррогата UTF16 (например, если его код находится в диапазоне [0xdc00..0xdfff]); в противном случае возвращает false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

bool QChar::isLower() const

Возвращает true если символ является строчной буквой, например, category() равно Letter_Lowercase.

См. также isUpper(), toLower() и toUpper().

[static, since 5.0] bool QChar::isLower(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является строчной буквой, например, category() равно Letter_Lowercase.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

См. также isUpper(), toLower(), и toUpper().

bool QChar::isMark() const

Возвращает true если символ является диакритическим знаком (категории Mark_*); в противном случае возвращает false.

См. QChar::Category для дополнительной информации о диакритических знаках.

[static, since 5.0] bool QChar::isMark(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является диакритическим знаком (категории Mark_*); в противном случае возвращает false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

[since 5.0] bool QChar::isNonCharacter() const

Возвращает true если QChar является недопустимым символом; в противном случае false.

В Unicode есть определенное количество кодов, классифицируемых как «недопустимые символы»: их можно использовать для внутренних целей в приложениях, но нельзя использовать для обмена текстом. Это последние два элемента в каждом плане Unicode ([0xfffe..0xffff], [0x1fffe..0x1ffff] и т. д.), а также элементы в диапазоне [0xfdd0..0xfdef].

Этот метод был добавлен в Qt 5.0.

[static, since 5.0] bool QChar::isNonCharacter(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является недопустимым символом; в противном случае false.

В Unicode есть определенное количество кодов, классифицируемых как «недопустимые символы»: их можно использовать для внутренних целей в приложениях, но нельзя использовать для обмена текстом. Это последние два элемента в каждом плане Unicode ([0xfffe..0xffff], [0x1fffe..0x1ffff] и т. д.), а также элементы в диапазоне [0xfdd0..0xfdef].

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

bool QChar::isNull() const

Возвращает true если символ является символом Unicode 0x0000 ('\0'); в противном случае возвращает false.

bool QChar::isNumber() const

Возвращает true если символ является числом (категории Number_*, а не только 0-9); в противном случае возвращает false.

См. также isDigit().

[static, since 5.0] bool QChar::isNumber(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является числом (категории Number_*, а не только 0-9); в противном случае возвращает false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

См. также isDigit().

bool QChar::isPrint() const

Возвращает true если символ является печатным символом; в противном случае возвращает false. Это любой символ, не относящийся к категории Other_*.

Обратите внимание, что это не указывает на то, доступен ли символ в данном шрифте.

[static, since 5.0] bool QChar::isPrint(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является печатным символом; в противном случае возвращает false. Это любой символ, не относящийся к категории Other_*.

Обратите внимание, что это не указывает на то, доступен ли символ в данном шрифте.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

bool QChar::isPunct() const

Возвращает true если символ является знаком препинания (категории Punctuation_*); в противном случае возвращает false.

[static, since 5.0] bool QChar::isPunct(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является знаком препинания (категории Punctuation_*); в противном случае возвращает false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

bool QChar::isSpace() const

Возвращает true если символ является разделителем (категории Separator_* или определенные кодовые точки из категории Other_Control); в противном случае возвращает false.

[static, since 5.0] bool QChar::isSpace(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является разделителем (категории Separator_* или определенные кодовые точки из категории Other_Control); в противном случае возвращает false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

[since 5.0] bool QChar::isSurrogate() const

Возвращает true если QChar содержит код, попадающий в диапазон суррогатов UTF-16 (например, если его код находится в диапазоне [0xd800..0xdfff]); в противном случае false.

Этот метод был добавлен в Qt 5.0.

[static, since 5.0] bool QChar::isSurrogate(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, содержит код, попадающий в диапазон суррогатов UTF-16 (например, если его код находится в диапазоне [0xd800..0xdfff]); в противном случае false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

bool QChar::isSymbol() const

Возвращает true если символ является символом (категории Symbol_*); в противном случае возвращает false.

[static, since 5.0] bool QChar::isSymbol(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, является символом (категории Symbol_*); в противном случае возвращает false.

Примечание: До Qt 6 этот метод принимал uint аргумент.

Этот метод был добавлен в Qt 5.0.

bool QChar::isTitleCase() const

Возвращает true если символ является заглавной буквой, например, category() равно Letter_Titlecase.

См. также isLower(), toUpper(), toLower() и toTitleCase().

[static, since 5.0] bool QChar::isTitleCase(char32_t ucs4)

Это перегруженный метод.

Возвращает true если символ UCS-4, заданный параметром ucs4, представляет заглавную букву, например, category() возвращает Letter_Titlecase.

Примечание: До Qt 6 эта функция принимала параметр uint.

Эта функция была добавлена в Qt 5.0.

См. также isLower(), toUpper(), toLower() и toTitleCase().

bool QChar::isUpper() const

Возвращает true если символ является заглавной буквой, например, category() возвращает Letter_Uppercase.

См. также isLower(), toUpper() и toLower().

[static, since 5.0] bool QChar::isUpper(char32_t ucs4)

Это перегруженная функция.

Возвращает true если символ UCS-4, заданный параметром ucs4, представляет заглавную букву, например, category() возвращает Letter_Uppercase.

Примечание: До Qt 6 эта функция принимала параметр uint.

Эта функция была добавлена в Qt 5.0.

См. также isLower(), toUpper() и toLower().

[since 5.3] QChar::JoiningType QChar::joiningType() const

Возвращает информацию о типе слияния символа (необходима для некоторых языков, таких как арабский или сирийский).

Эта функция была добавлена в Qt 5.3.

[static, since 5.3] QChar::JoiningType QChar::joiningType(char32_t ucs4)

Это перегруженная функция.

Возвращает информацию о типе слияния символа UCS-4, заданного параметром ucs4 (необходима для некоторых языков, таких как арабский или сирийский).

Примечание: До Qt 6 эта функция принимала параметр uint.

Эта функция была добавлена в Qt 5.3.

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

Возвращает низкий суррогат кодового значения UCS-4. Результат не определён, если ucs4 меньше 0x10000.

Примечание: До Qt 6 эта функция принимала параметр uint и возвращала ushort.

QChar QChar::mirroredChar() const

Возвращает зеркальный символ, если текущий символ является зеркальным; в противном случае возвращает сам символ.

См. также hasMirrored().

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

Это перегруженная функция.

Возвращает зеркальный символ, если символ UCS-4, заданный параметром ucs4, является зеркальным; в противном случае возвращает сам символ.

Примечание: До Qt 6 эта функция принимала параметр uint и возвращала uint.

См. также hasMirrored().

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

Возвращает true если символ UCS-4, заданный параметром ucs4, может быть разделен на высокую и низкую части суррогата UTF-16 (например, если его кодовое значение больше или равно 0x10000); в противном случае возвращает false.

Примечание: До Qt 6 эта функция принимала параметр uint.

uchar QChar::row() const

Возвращает строку (старший байт) символа Unicode.

См. также cell().

[since 5.1] QChar::Script QChar::script() const

Возвращает значение свойства шрифта Unicode для данного символа.

Эта функция была добавлена в Qt 5.1.

[static, since 5.1] QChar::Script QChar::script(char32_t ucs4)

Это перегруженная функция.

Возвращает значение свойства шрифта Unicode для символа, заданного в его кодировке UCS-4 как ucs4.

Примечание: До Qt 6 эта функция принимала параметр uint.

Эта функция была добавлена в Qt 5.1.

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

Преобразует пару суррогатов UTF-16 с заданными значениями high и low в его кодовое значение UCS-4.

Примечание: До Qt 6 эта функция принимала ushort аргументов и возвращала uint.

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

Это перегруженная функция.

Преобразует пару суррогатов UTF-16 (high, low) в её кодовое значение UCS-4.

Примечание: До Qt 6 эта функция возвращала uint.

QChar QChar::toCaseFolded() const

Возвращает эквивалент символа с отложенным регистром. Для большинства символов Unicode это то же самое, что и toLower().

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

Это перегруженная функция.

Возвращает эквивалент символа UCS-4 с отложенным регистром, заданного параметром ucs4. Для большинства символов Unicode это то же самое, что и toLower().

Примечание: До Qt 6 эта функция принимала параметр uint и возвращала uint.

char QChar::toLatin1() const

Возвращает эквивалент символа Latin-1, соответствующего QChar, или 0. Это полезно в основном для программного обеспечения, не предназначенного для международного использования.

Примечание: Невозможно отличить символ, не являющийся Latin-1, от символа Latin-1 0 (NUL). Предпочтительнее использовать unicode(), в котором нет этой неоднозначности.

См. также unicode().

QChar QChar::toLower() const

Возвращает эквивалент в нижнем регистре, если символ заглавный или строчный; в противном случае возвращает сам символ.

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

Это перегруженная функция.

Возвращает эквивалент в нижнем регистре символа UCS-4, заданного параметром ucs4, если символ заглавный или строчный; в противном случае возвращает сам символ.

Примечание: До Qt 6 эта функция принимала параметр uint и возвращала uint.

QChar QChar::toTitleCase() const

Возвращает эквивалент в заглавном регистре, если символ строчный или заглавный; в противном случае возвращает сам символ.

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

Это перегруженная функция.

Возвращает эквивалент в заглавном регистре символа UCS-4, заданного параметром ucs4, если символ строчный или заглавный; в противном случае возвращает сам символ.

Примечание: До Qt 6 эта функция принимала параметр uint и возвращала uint.

QChar QChar::toUpper() const

Возвращает эквивалент в верхнем регистре, если символ строчный или строчный; в противном случае возвращает сам символ.

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

Это перегруженная функция.

Возвращает эквивалент в верхнем регистре символа UCS-4, заданного параметром ucs4, если символ строчный или строчный; в противном случае возвращает сам символ.

Примечание: До Qt 6 эта функция принимала параметр uint и возвращала uint.

char16_t QChar::unicode() const

Возвращает числовое значение Unicode символа QChar.

char16_t &QChar::unicode()

Возвращает ссылку на числовое значение Unicode символа QChar.

QChar::UnicodeVersion QChar::unicodeVersion() const

Возвращает версию Unicode, в которой был введён этот символ.

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

Это перегруженная функция.

Возвращает версию Unicode, в которой был введён символ, заданный в его кодировке UCS-4 как ucs4.

Примечание: До Qt 6 эта функция принимала параметр uint.

END_OF_DOCUMENT_MARKER

Связанные нечлены

bool operator!=(QChar c1, QChar c2)

Возвращает true, если c1 и c2 не являются одним и тем же символом Юникода; в противном случае возвращает false.

bool operator<(QChar c1, QChar c2)

Возвращает true, если числовое значение Юникода c1 меньше, чем c2; в противном случае возвращает false.

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

Записывает символ chr в поток out.

См. также Сериализация типов данных Qt.

bool operator<=(QChar c1, QChar c2)

Возвращает true, если числовое значение Юникода c1 меньше или равно c2; в противном случае возвращает false.

bool operator==(QChar c1, QChar c2)

Возвращает true, если c1 и c2 — один и тот же символ Юникода; в противном случае возвращает false.

bool operator>(QChar c1, QChar c2)

Возвращает true, если числовое значение Юникода c1 больше, чем c2; в противном случае возвращает false.

bool operator>=(QChar c1, QChar c2)

Возвращает true, если числовое значение Юникода c1 больше или равно c2; в противном случае возвращает 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.

См. также QLatin1Char, QChar::fromUcs4 и QT_NO_CAST_FROM_ASCII.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qchar.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API