Qt之數據類型轉換


學習和使用Qt也有差不多半年了,想着半年前一個剛看完《C++ Primer》的超級大菜鳥,到現在能夠基本獨立完成實驗室上位機軟件開發的小菜鳥,Qt的學習讓我加深了對《C++ Primer》的理解,更培養了我查文檔的能力。這半年來,學到了很多,卻由於沒有及時記錄忘了很多。對着之前的項目,把經驗留在這,亡羊補牢。

關於Qt5的學習,突然發現了一篇非常好的教程,非常詳細,感謝作者。

Qt的數據類型與標准c++是不一樣的,在開發的時候,必然會涉及到很多數據類型的轉換。早已厭倦了百度QString轉QByteArray,QByteArray轉char*,QString轉string......。Qt的第一篇文章,就先來總結一下我用過的數據之間的轉換。

1、QString轉QByteArray

QByteArray byte;
QString string;
byte = string.toLatin1();

2、QByteArray轉QString

QByteArray byte;
QString string;
string = QString(byte);

3、QString轉String

QString string;

std::string str;

str = string.toStdString();

4、String轉QString

QString string;

std::string str;

string = QString::fromStdString(str);

5、QByteArray轉char *

char *ch;         //不能定義成ch[n],數組和指針不一樣;
QByteArray byte;
ch = byte.data();

6、char *轉QByteArray

char *ch;
QByteArray byte;
byte = QByteArray(ch);

7、QString轉char *

QString string;
char *ch;
ch = string.toLatin1.data();

8、char *轉QString

char *ch;

QString string= QString(QLatin1String(ch));

9、QHostAddress轉QString

QHostAddress address;

QString string = address.toString();

10、QString轉QHostAddress

QString string;

QHostAddress address(string);

11、QString轉unsigned char

QString string;

bool ok;

unsigned char uch = string.toInt(&ok, 16);

12、unsigned char轉QString

unsigned char uch;

QString string = QString::number(uch,16);

13、int轉QString

int m;
QString string;
string=QString::number(m);

14、QString轉int

QString string;
int m;
m=string.toInt();

 

11和12主要用在串口通信中,把收到的數據轉成QString后用於顯示。

其實,number這個函數不僅僅能夠轉換成int型,還能轉換成double,long等等,還可以16進制轉換,非常強大。

以上是我經常碰到的,其實用好幫助文檔也是一樣,只是有個歸納的找起來方便而已。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM