Qt 型別轉換

2021-06-23 06:57:27 字數 3641 閱讀 8192

1、char * 與 const char *的轉換

char *ch1="hello11";

const char *ch2="hello22";

ch2 = ch1;//不報錯,但有警告

ch1 = (char *)ch2;  

2、char 與 qstring的轉換

char 轉換為 qstring 其實方法有很多中,我用的是:

char a='b';

qstring str;

str=qstring(a);

qstring 轉換為 char 方法也有很多種

qstring str="abc"; char *ch;

qbytearray ba = str.tolatin1()

ch = ba.data();

注意:在呼叫qbytearray.data()之前,

必須要先顯示儲存這個bytearray。

像這樣const char *ch = str.tolatin1().data();

會使程式崩潰,因為qbytearray沒有被儲存,呼叫data()前是不存在的,

必須先顯式呼叫一次tolatin1(),再呼叫data()。 

3、qbytearray 與 char* 的轉換

qbytearray 轉換為 char *

char *ch;//不要定義成ch[n];

qbytearray byte;

ch = byte.data();

char * 轉換為 qbytearray

char *ch;

qbytearray byte;

byte = qbytearray(ch); 

4、qstring 與 qbytearray 的轉換

qstring轉換為qbytearray

qbytearray byte; qstring string; byte = string.toascii();

qbytearray 轉換為 qstring

qbytearray byte; qstring string; string = qstring(byte);

這裡再對這倆中型別的輸出總結一下:

qdebug()<<"print"; qdebug()<

qdebug()<

qdebug()<

但是qdebug()<

要想用tr()函式輸出qstring型別的字元則要如下:

qdebug()<

5 、int與 qstring 的轉換

int 轉 qstring

int a=10; qstring b; b=qstring::number(a)

qstring 轉int

qstring a="120" int b; b=a.toint()

5、qstring與string的轉換

qstring --> string qstring.tostdstring();

string --> qstring qstring::fromstdstring(string)

6、qstring與其他型別的轉換

qstring --->int,double,char * qstring::toint()

qstring::todouble() qstring.tostdstring().c_str(); 

7、 int double char* --->string

可以採用裡的stringstream

以int 為例,int a = 3; stringstream ss;

string strint; ss<>strint;

8、qstring--->qdatetime

qdatetime轉qstring 

public qdatetime qdate = qdatetime.currentdatetime(); 

datetime = qdate.tostring("yyyy年mm月dd日ddddhh:mm:ss"); 

//2023年03月-05日monday13:48:55

qstring轉換成qdatetime 

qdatetime datetime2 = qdatetime::fromstring("m1d1y9800:01:02", 

"'m'm'd'd'y'yyhh:mm:ss"); 

qdatetime轉qstring

public qdatetime qdate = qdatetime.currentdatetime();

datetime = qdate.tostring("yyyy年mm月dd日ddddhh:mm:ss");

//2023年03月-05日monday13:48:55

qstring轉換成qdatetime

qdatetime datetime2 = qdatetime::fromstring("m1d1y9800:01:02",

"'m'm'd'd'y'yyhh:mm:ss");

9、qstring -->char*

qstring 轉換char*問題! 

方法一: 

qstring qstr("hello,word"); 

const

char * p = qstr.tolocal8bit().data(); 

方法二: 

const

char *p = qstr.tostdstring().data(); 

//轉換過來的是常量

方法三: 

qstring str="abc"; 

char *ch; 

qbytearray ba = str.tolatin1() 

ch = ba.data(); 

qstring 轉換char*問題!

方法一:

qstring qstr("hello,word");

const char * p = qstr.tolocal8bit().data();

方法二:

const char *p = qstr.tostdstring().data();

//轉換過來的是常量

方法三:

qstring str="abc";

char *ch;

qbytearray ba = str.tolatin1()

ch = ba.data(); 

或者

qstring tmp = "test";

qbytearray text = tmp.tolocal8bit();

char *data = new char[text.size() + 1] strcpy(data, text.data());

delete data;

Qt型別轉換

自 1 char 與 const char 的轉換 char ch1 hello11 const char ch2 hello22 ch2 ch1 不報錯,但有警告 ch1 char ch2 2 char 與 qstring的轉換 char 轉換為 qstring 其實方法有很多中,我用的是 cha...

Qt所有型別轉換

1 char 與 const char 的轉換 char ch1 hello11 const char ch2 hello22 ch2 ch1 不報錯,但有警告 ch1 char ch2 2 char 與 qstring的轉換 char 轉換為 qstring 其實方法有很多中,我用的是 char ...

Qt筆記 型別轉換

char ch1 hello11 const char ch2 hello22 ch1 char ch2 char 轉換為 qstring 其實方法有很多中,常用的是 char a b qstring str str qstring a qstring 轉換為 char 方法也有很多種 qstrin...