Qt相关数据类型转换

来源:互联网 发布:chinanet登陆软件 编辑:程序博客网 时间:2024/06/08 10:18

原文地址:http://www.cnblogs.com/dyllove98/archive/2013/07/08/3177766.html

一、 QString转double

QString str = “123.45”;double val = str.toDouble();//val=123.45

适合科学计数法形式转换:

bool ok;double d;d = QString(“1234.56e-02”).toDouble(&ok);//ok=true;d=12.3456

二、 QString转float

QString str = “123.45”;float d = str.toFloat();//d=123.45
QString str = “R2D2”;bool ok;float d = str.toFloat(&ok);//转换失败返回0.0,ok=false

三、 QString转整型
1) 转换成十进制整型
注:基数默认是10;基数范围2~36;
如果基数为0,若字符串以0x开头,则转换为16进制;若以0开头,则转换为哦8进制,否则转换为10进制。

QSting str = “FF”;bool ok;int dec = str.toInt(&ok,10);//dec=255;ok=trueint hex = str.toInt(&ok,16);//hex=255;ok=trueint index = str.toInt();

2) long转换为QString

long a = 63;QString str = QString::number(a,16);//str=”3f”;QString str = QString::number(a,16).toUpper();//str=”3F”;

3) int转QString

int a = 63;QString str = QString::number(a);

4) QString转char *

QString qstr(“hello,world”);const char *p = qstr.toLocal8Bit().data();
const char *p = astr.toStdString().data();

四、 当前时间转换为QString

public QDateTime qdate = QDate Time.currentDateTime();datetime = qdate.toString(“yyyy-MM-dd-ddddhh:mm:ss”);

char/unsigned char类:

QString Timetring(DWORD dwTime){        char cTime[50] = {0x00};        memset(cTime,0x00,50);        strtime(cTime,32,”%Y-%m-%d %H:%M:%S”,localtime(&time_t(dwTime)));        return QString(cTime);}

五、 QString转char*

QString str = “test”;QByteArray byteArray = str.toLatin1();const char *c = byteArray.data();

六、 char* 转QString

char c[10] = “abc”;QString szC = QString(c);

七、 int转QString

int index = 2;QString str = QString::number(index);

八、 float/double转QString

float ff = 1.2;QString str = QString::number(ff, “f”,2);//str=1.20

九、 多个变量转到QString

char c[16] = “abc”;int index = 123;QString str = QString(“c is:%1 .index is:%2 .”).arg(c).arg(index);

十、 中文转QString

char c[16] = “abc”;int index = 123;QString str = QString::fromLocal8Bit(“c是:%1 . index 是:%2”).arg(c).arg(index);

十二、 char 和const char 的转换

char *ch1 = “hello”;const char *ch2 = “world”;ch2 = ch1//不报错,但是有警告ch1 =(char *)ch2; 

十三、 char转QString
方法很多,这只是其一

char c = ‘a’;QString str = QString(c);

十四、 QString转char
方法很多,这只是其一

QString str = “abc”;char *ch = str.toLatin1.data();

十五、 QByteArray转char *

char *ch;//不要定义成ch[n]QByteArray byte;ch = byte.data();

十六、 char *转QByteArray

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

十七、 QString转QByteArray

QByteArray byte;QString str;byte = str.toAscii();

十八、 QByteArray转QString

QByteArray byte;QString str = QString(byte);

QByteArray和QString输出总结:

qDebug()<<”print”;qDebug()<<tr(“print”);qDebug()<<ch;//ch为char型qDebug()<<tr(ch);qDebug()<<byteArray;qDebug()<<tr(byteArray);qDebug()<<str;//str为QString型qDebug()<<tr(str)//错误,qDebug()<<tr(str.toLatin1);//正确
0 0
原创粉丝点击