日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt学习笔记之QChar

發(fā)布時間:2024/9/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt学习笔记之QChar 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在Qt中,QChar是Qt處理字符的基本類型,是對unicode字符的封裝QChar使用2個字節(jié)的內(nèi)存,在其內(nèi)部維護了一個unsigned short 類型的內(nèi)存。

QChar(); // 構(gòu)造一個空字符,即'\0' QChar(char ch); // 由字符數(shù)據(jù)ch構(gòu)造,char類型作為QChar的構(gòu)造參數(shù)時,會被轉(zhuǎn)換為unsigned short,繼而可被QChar接管 QChar(uchar ch); // 由無符號字符數(shù)據(jù)ch構(gòu)造 QChar(ushort code); // 由無符號短整形數(shù)據(jù)code構(gòu)造,code是Unicode編碼 QChar(short code); //由 短整形數(shù)據(jù)code構(gòu)造,code是Unicode編碼 QChar(uint code); // 由無符號整型數(shù)據(jù)code構(gòu)造,code是Unicode編碼 QChar(int code); // 由整型數(shù)據(jù)code構(gòu)造,code是Unicode編碼

在Qt中,Unicode字符是沒有任何標記或結(jié)構(gòu)的16位實體。此類表示這樣的實體。它是輕量級的,因此可以在任何地方使用。大多數(shù)編譯器將其視為無符號空頭。

QChar提供了完整的測試/分類功能,可以轉(zhuǎn)換為其他格式,也可以轉(zhuǎn)換為分解的Unicode格式,如果需要,還可以嘗試比較和轉(zhuǎn)換大小寫。

分類函數(shù)包括標準c++標頭<cctype>(以前是<ctype.h>)中的函數(shù),但是操作的是Unicode字符的全范圍,而不僅僅是ASCII范圍。如果字符是某種類型的字符,它們都返回true;否則返回false。這些分類功能isNull()(返回true,如果字符' \ 0 '),isPrint()(如果是任何類型的可打印字符,包括空格),isPunct()(任何類型的斑點),isMark () (Unicode)、isLetter()(字母),isNumber()(任何形式的數(shù)字字符,而不僅僅是0 - 9),isLetterOrNumber(),和isDigit()(小數(shù)位數(shù))。所有這些都是圍繞category()的包裝器,它返回每個字符的unicode定義的類別。其中一些還計算派生屬性(例如isSpace()如果字符屬于類別分隔符_*或來自Other_Control類別的異常代碼點,則返回true)。

QChar還提供了direction(),它指示該字符的“自然”寫入方向。joiningType()函數(shù)指示字符如何與它的鄰居連接(主要用于阿拉伯語或敘利亞語),最后是has(),它指示當字符以“非自然”的書寫方向打印時,是否需要鏡像字符。

通過使用decomposition(),可以將組合的Unicode字符(比如ring)轉(zhuǎn)換成分解的Unicode(“a”后面跟著“ring above”)。

在Unicode中,比較是不可能的,大小寫轉(zhuǎn)換是非常困難的。Unicode覆蓋了“整個”世界,也包括世界上的大多數(shù)情況和排序問題。操作符==()和好友將純粹基于字符的數(shù)值Unicode值(代碼點)進行比較,而toUpper()和toLower()將在字符具有定義良好的大寫/小寫等價時進行大小寫更改。對于依賴于語言環(huán)境的比較,使用QString::localeAwareCompare()。

轉(zhuǎn)換函數(shù)包括unicode()(轉(zhuǎn)換為標量)、toLatin1()(轉(zhuǎn)換為標量,但將所有非latin -1字符轉(zhuǎn)換為0)、row()(提供unicode行)、cell()(提供unicode單元格)、digitValue()(提供任意數(shù)字字符的整數(shù)值)和許多構(gòu)造函數(shù)。

QChar提供了構(gòu)造函數(shù)和強制類型轉(zhuǎn)換操作符,這使得轉(zhuǎn)換傳統(tǒng)的8位字符變得很容易。如果您定義了QT_NO_CAST_FROM_ASCII和QT_NO_CAST_TO_ASCII,就像QString文檔中解釋的那樣,您將需要顯式地調(diào)用fromLatin1(),或者使用QLatin1Char,從一個8位的字符構(gòu)造一個QChar,并且您將需要調(diào)用toLatin1()來獲取8位的值。

#include <QCoreApplication> #include <QChar> #include <QDebug> int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);char ch1 = 'h';QChar ch = 'hh';qDebug("%x",ch);qDebug("%x",ch1);return a.exec(); } 輸出結(jié)果: 6868 68

參考資料:

1.?https://www.cnblogs.com/retry/p/9328715.html

2. Qt helper

總結(jié)

以上是生活随笔為你收集整理的Qt学习笔记之QChar的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。