相互转换关系及函数
转换关系图
1.int->QString
int m=1;
QString b;
b=QString::number(m);
2.QString->int
QString a="1111";
int b;
b=a.toInt();
3.QString->char *
QString str="qq";
char *chPath;
QByteArray qbt;
qbt = path.toLatin1();
chPath=qbt.data();
不能直接将两个上面5句话进行合并为下列形式:
char *mm = str.toLatin1().data();
原因:str.toLatin1()得到的QByteArray类型结果就不能保存,最后转换,mm的值就为空
4.char ->QString / char * ->QString
char->QString
char a='b';
QString str;
str=QString(a);
char*->QString
char *mm;
QString str;
str = QString(QLatin1String(mm));
5.char*->const char*
char *ch1="tt";
const char *ch2="qq";
ch2 = ch1;//不报错,但有警告
6.const char*->char *
char *ch1="tt";
const char *ch2="qq";
ch1 = (char *)ch2;
7.QByteArray->char *
char *ch;//不要定义成ch[n];
QByteArray byte;
ch = byte.data();
8.char *->QByteArray
char *ch;
QByteArray byte;
byte = QByteArray(ch);
9.QString->QByteArray
QByteArray byte;
QString string;
byte = string.toAscii();
10.QByteArray->QString
QByteArray byte;
QString string;
string = QString(byte);
11.String->QString
const string &s;
QString Qs;
Qs=QString::fromLocal8Bit(s.c_str()));
12. QString->String
const string &s;
QString Qs;
s=string((const char *)Qs.toLocal8Bit());
QString 的知识点,参看
http://devbean.blog.51cto.com/448512/275360
qDebug
qDebug()<<"qq"; //string
qDebug()<<tr("tt");//QString
qDebug()<<ch;(ch 为char类型)
qDebug()<<tr(ch);
qDebug()<<byteArray;(byteArray是QByteArray类型)
qDebug()<<tr(byteArray);
qDebug()<<str;(str 为Qstring类型)
但是
qDebug()<<tr(str);
是不可以的
要想用tr()函数输出QString类型的字符则要如下:
qDebug()<<tr(str.toLatin1);
参考博客:
http://blog.csdn.net/ymc0329/article/details/7284545
http://blog.csdn.net/ymc0329/article/details/7284542
http://blog.csdn.net/ymc0329/article/details/8441784
http://blog.csdn.net/ymc0329/article/details/7284514
http://blog.csdn.net/candyliuxj/article/details/6429208