Logo Search packages:      
Sourcecode: qt4-x11 version File versions

QChar Class Reference

List of all members.


Detailed Description

The QChar class provides a 16-bit Unicode character.

In Qt, Unicode characters are 16-bit entities without any markup or structure. This class represents such an entity. It is lightweight, so it can be used everywhere. Most compilers treat it like a {unsigned short}.

QChar provides a full complement of testing/classification functions, converting to and from other formats, converting from composed to decomposed Unicode, and trying to compare and case-convert if you ask it to.

The classification functions include functions like those in the standard C++ header <cctype> (formerly <ctype.h>), but operating on the full range of Unicode characters. They all return true if the character is a certain type of character; otherwise they return false. These classification functions are isNull() (returns true if the character is '\0'), isPrint() (true if the character is any sort of printable character, including whitespace), isPunct() (any sort of punctation), isMark() (Unicode Mark), isLetter() (a letter), isNumber() (any sort of numeric character, not just 0-9), isLetterOrNumber(), and isDigit() (decimal digits). All of these are wrappers around category() which return the Unicode-defined category of each character.

QChar also provides direction(), which indicates the "natural" writing direction of this character. The joining() function indicates how the character joins with its neighbors (needed mostly for Arabic) and finally hasMirrored(), which indicates whether the character needs to be mirrored when it is printed in its "unnatural" writing direction.

Composed Unicode characters (like ) can be converted to decomposed Unicode ("a" followed by "ring above") by using decomposition().

In Unicode, comparison is not necessarily possible and case conversion is very difficult at best. Unicode, covering the "entire" world, also includes most of the world's case and sorting problems. operator==() and friends will do comparison based purely on the numeric Unicode value (code point) of the characters, and toUpper() and toLower() will do case changes when the character has a well-defined uppercase/lowercase equivalent. For locale-dependent comparisons, use QString::localeAwareCompare().

The conversion functions include unicode() (to a scalar), toLatin1() (to scalar, but converts all non-Latin-1 characters to 0), row() (gives the Unicode row), cell() (gives the Unicode cell), digitValue() (gives the integer value of any of the numerous digit characters), and a host of constructors.

QChar provides constructors and cast operators that make it easy to convert to and from traditional 8-bit {char}s. If you defined QT_NO_CAST_FROM_ASCII and QT_NO_CAST_TO_ASCII, as explained in the QString documentation, you will need to explicitly call fromAscii() or fromLatin1(), or use QLatin1Char, to construct a QChar from an 8-bit char, and you will need to call toAscii() or toLatin1() to get the 8-bit value back.

See also:
QString, Unicode, QLatin1Char

Definition at line 47 of file qchar.h.


Public Types

enum  Category {
  NoCategory, Mark_NonSpacing, Mark_SpacingCombining, Mark_Enclosing,
  Number_DecimalDigit, Number_Letter, Number_Other, Separator_Space,
  Separator_Line, Separator_Paragraph, Other_Control, Other_Format,
  Other_Surrogate, Other_PrivateUse, Other_NotAssigned, Letter_Uppercase,
  Letter_Lowercase, Letter_Titlecase, Letter_Modifier, Letter_Other,
  Punctuation_Connector, Punctuation_Dash, Punctuation_Open, Punctuation_Close,
  Punctuation_InitialQuote, Punctuation_FinalQuote, Punctuation_Other, Symbol_Math,
  Symbol_Currency, Symbol_Modifier, Symbol_Other, Punctuation_Dask = Punctuation_Dash
}
enum  CombiningClass {
  Combining_BelowLeftAttached = 200, Combining_BelowAttached = 202, Combining_BelowRightAttached = 204, Combining_LeftAttached = 208,
  Combining_RightAttached = 210, Combining_AboveLeftAttached = 212, Combining_AboveAttached = 214, Combining_AboveRightAttached = 216,
  Combining_BelowLeft = 218, Combining_Below = 220, Combining_BelowRight = 222, Combining_Left = 224,
  Combining_Right = 226, Combining_AboveLeft = 228, Combining_Above = 230, Combining_AboveRight = 232,
  Combining_DoubleBelow = 233, Combining_DoubleAbove = 234, Combining_IotaSubscript = 240
}
enum  Decomposition {
  NoDecomposition, Canonical, Font, NoBreak,
  Initial, Medial, Final, Isolated,
  Circle, Super, Sub, Vertical,
  Wide, Narrow, Small, Square,
  Compat, Fraction
}
enum  Direction {
  DirL, DirR, DirEN, DirES,
  DirET, DirAN, DirCS, DirB,
  DirS, DirWS, DirON, DirLRE,
  DirLRO, DirAL, DirRLE, DirRLO,
  DirPDF, DirNSM, DirBN
}
enum  Joining { OtherJoining, Dual, Right, Center }
enum  SpecialCharacter {
  Null = 0x0000, Nbsp = 0x00a0, ReplacementCharacter = 0xfffd, ObjectReplacementCharacter = 0xfffc,
  ByteOrderMark = 0xfeff, ByteOrderSwapped = 0xfffe, ParagraphSeparator = 0x2029, LineSeparator = 0x2028
}
enum  UnicodeVersion {
  Unicode_Unassigned, Unicode_1_1, Unicode_2_0, Unicode_2_1_2,
  Unicode_3_0, Unicode_3_1, Unicode_3_2, Unicode_4_0
}

Public Member Functions

Category category () const
uchar cell () const
unsigned char combiningClass () const
QString decomposition () const
Decomposition decompositionTag () const
int digitValue () const
Direction direction () const
bool hasMirrored () const
bool isDigit () const
bool isLetter () const
bool isLetterOrNumber () const
bool isLower () const
bool isMark () const
bool isNull () const
bool isNumber () const
bool isPrint () const
bool isPunct () const
bool isSpace () const
bool isSymbol () const
bool isUpper () const
Joining joining () const
QChar mirroredChar () const
 QChar (SpecialCharacter sc)
 QChar (int rc)
 QChar (uint rc)
 QChar (short rc)
 QChar (ushort rc)
 QChar (uchar c, uchar r)
 QChar (QLatin1Char ch)
QT_ASCII_CAST_WARN_CONSTRUCTOR QChar (uchar c)
QT_ASCII_CAST_WARN_CONSTRUCTOR QChar (char c)
 QChar ()
uchar row () const
void setCell (uchar cell)
void setRow (uchar row)
const char toAscii () const
const char toLatin1 () const
QChar toLower () const
QChar toUpper () const
ushort & unicode ()
const ushort unicode () const
UnicodeVersion unicodeVersion () const

Static Public Member Functions

static QChar fromAscii (char c)
static QChar fromLatin1 (char c)

Private Attributes

ushort ucs

Related Functions

(Note that these are not member functions.)

int operator!= (QChar c1, QChar c2)
int operator< (QChar c1, QChar c2)
QDataStreamoperator<< (QDataStream &out, const QChar &chr)
int operator<= (QChar c1, QChar c2)
bool operator== (QChar c1, QChar c2)
int operator> (QChar c1, QChar c2)
int operator>= (QChar c1, QChar c2)
QDataStreamoperator>> (QDataStream &in, QChar &chr)

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index