<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 我的QT5學(xué)習之路(三)――模板庫、工具類(lèi)和控件(上)

我的QT5學(xué)習之路(三)――模板庫、工具類(lèi)和控件(上)

作者: 時(shí)間:2018-08-02 來(lái)源:網(wǎng)絡(luò ) 收藏

一、前言  “合抱之木,生于毫末;九層之臺,起于壘土;千里之行,始于足下”,上一章我們知道了如何使用Qt創(chuàng )建簡(jiǎn)單的示例程序,了解了最基本的Qt框架,在進(jìn)一步學(xué)習Qt框架和消息機制前,我們應該對Qt本身有一個(gè)更細致的了解,這個(gè)了解就是Qt的模板庫、工具類(lèi)和控件。

本文引用地址:http://dyxdggzs.com/article/201808/385045.htm

回到頂部(go to top)

二、Qt的模板庫、工具類(lèi)和控件2.1 字符串類(lèi)1、字符串的操作  我們了解字符串的操作就是要了解字符串主要有哪些操作符,Qt基于C++繼承和強化了string的功能,結構類(lèi)型為QString,QString提供了一個(gè)二元的“+”和“+=”操作符,其中“+=”操作符功能和append函數方法具有同樣的功能,是現在一個(gè)字符串末尾追加另一個(gè)字符串,學(xué)習時(shí)可基于C++中String類(lèi)進(jìn)行比較。

1 QString str1=nihao;

2 QString str2=Qt;

3

4 str1+=str2; //str1=nihaoQt

5 str1=str1+str2; //str1=nihaoQtQt

6 str1.append(str2); //str1=nihaoQtQtQt

7 str1.append(yes); //str1=nihaoQtQtQtyes

Qt組合字符串的另一個(gè)函數 QString::sprintf(),此函數支持的格式定義符和C++庫中的函數sprintf定義的一樣。Qt還提供了另外一種方便的字符串組合方式,使用QString::arg()函數,此函數的重載可以處理多種數據類(lèi)型,一些重載具有額外的參數對字段的寬度、數字基數或者浮點(diǎn)數精度進(jìn)行控制。相對于sprintf來(lái)說(shuō),srg是一個(gè)比較好的解決方案,因為它類(lèi)型安全,完全支持Unicode,并且允許改變%n參數的順序。

1 QString str;

2 str=QString(%1 was born in %2 .).arg(Rimond).arg(1990);

3 //str=Rimond was born in 1990.

此外,QString也提供了一些其他組合字符串的方法

函數名稱(chēng)函數功能

insert()在原字符串特定的位置插入另一個(gè)字符串

prepend()在原字符串的開(kāi)頭插入另一個(gè)字符串

replace()用指定的字符串代替原字符串中的某些字符

為了解決特定場(chǎng)景比如去除一個(gè)字符串兩端的空白(空白字符包括回車(chē)字符“n”,換行字符“r”,制表符“t”和空格字符等),QString提供了特定的函數。

函數名稱(chēng)函數功能

trimmed() 移出字符串兩端的空白字符

simplified()移除字符串兩端的空白字符,使用單個(gè)空格字符“ ”代替字符串中出現的空白字符

1 QString str= Hello t QT n ! ;

2 str=str.trimmed();

3

4 //str= Hello t to n you!

5 //如果使用str=str.simplified(),str的結果是“Hello Qt !”

2、查詢(xún)字符串數據  查詢(xún)字符串數據有多種樣式。

(1) QString::startsWith()判斷一個(gè)字符串是否以某個(gè)字符串開(kāi)頭。此函數具有兩個(gè)參數,第一個(gè)參數指定了一個(gè)字符串,第二個(gè)參數指定是否大小寫(xiě)敏感(默認大小寫(xiě)敏感)。

1 QString str=Hello Qt!;

2 str.startsWith(Hello,Qt::CaseSensitive); //返回真

3 str.startsWith(Qt,Qt::caseSenstive); //返回假

(2) QString::endwith()類(lèi)似于QString::startswith(),它用來(lái)判斷一個(gè)字符串是否以某個(gè)字符串結尾。

(3) QString::contains()判斷一個(gè)指定的字符串是否出現過(guò)。

1 QString str =Hello QT!;

2 str.contains(QT,Qt::CaseSensitive); //返回真

(4) QString類(lèi)還重載了多種用于比較的操作符,用法可參照C++ string類(lèi)中重載的比較操作符。此外,QString類(lèi)增加了兩個(gè)特殊函數。

localeAwareCompare(const QString,const QString):靜態(tài)函數,比較前后兩個(gè)字符串,如果前面字符串小于后面字符串,則返回值為負整數;如果等于則返回0;如果大于則返回值為正整數,該函數用于比較基于本地字符集,而且肫教ㄏ喙氐模通常該函數用于向用戶(hù)顯示一個(gè)有序的字符串列表。

compare(const QString,const QString::CaseSensitivity):該函數可以指定是否進(jìn)行大小寫(xiě)的比較,而大小寫(xiě)的比較臚耆基于字符的Unicode編碼值的,而且是非??斓?,返回值類(lèi)似于localeAwareCompare函數。

3、字符串的轉換  由于Qt的跨平臺型,可移植性等特點(diǎn)反映了其在字符串上的靈活性,QString類(lèi)提供了豐富的轉換函數,可以實(shí)現講一個(gè)字符串轉換為數值類(lèi)型或者其他的字符編碼集。

(1) QString::toInt()函數實(shí)現了將字符串轉換為整型數值,類(lèi)似的函數還有toDouble()、toFloat()、toLong()、toLongLong()等。

1 QString str=125;

2 bool ok;

3 int hex=str.toInt(ok,16); //ok=true,hex=293

4 int dec=str.toInt(ok,10); //ok=true,dec=125

可以看到上面的16和10分別代表了進(jìn)制,ok用于傳遞一個(gè)地址,表示轉換結果。

(2) QString提供的字符串編碼集的轉換函數將會(huì )返回一個(gè)const char*類(lèi)型版本的QByteArry,即構造函數QByteArry(const char*)構造的QByteArry對象。QByteArry類(lèi)具有一個(gè)字符數組,它既可以存儲原始字節(raw bytes),也可以存儲傳統的以“国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放

<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>