Spec-Zone.ru › Qt 6.0

Класс 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 является нижней частью суррогата UTF-16 (например, если его код находится в диапазоне [0xdc00..0xdfff]); в противном случае возвращает false.

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

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

Возвращает true если символ UCS-4, заданный параметром ucs4, является нижней частью суррогата UTF-16 (например, если его код находится в диапазоне [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, может быть разделен на высокую и низкую части суррогата UTF16 (например, если его код больше или равен 0x10000); в противном случае возвращает false.

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

uchar QChar::row() const

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

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

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

Возвращает значение свойства скрипта Юникода для этого символа.

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

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

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

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

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

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

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

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

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

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

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

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

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

QChar QChar::toCaseFolded() const

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

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

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

Возвращает эквивалент символа в сложенном формате, учитывая регистр, для символа UCS-4, указанного параметром ucs4. Для большинства символов Юникода это то же самое, что и 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

Возвращает числовое значение Юникода QChar.

char16_t &QChar::unicode()

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

QChar::UnicodeVersion QChar::unicodeVersion() const

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

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

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

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

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

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

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.0/qchar.html

Spec-Zone.ru

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