在使用QT和C++进行开发的时候,由于两者的数据类型不完全相同,需要进行
转换。下面介绍
QString和
string类型相互
转换的方法。(QT4.6上已测试可用。)
1、在头文件中添加inlucde信息和
转换函数声明:
view plaincopy to clipboardprint?
#include <
QString>
#include <vector>
#include <iostream>
#include <
string>
using namespace std;
QString s2q(const
string &s);
string q2s(const
QString &s);
#include <
QString>
#include <vector>
#include <iostream>
#include <
string>
using namespace std;
QString s2q(const
string &s);
string q2s(const
QString &s);
2、在主体CPP文件中添加以下
转换函数即可:
view plaincopy to clipboardprint?
QString s2q(const
string &s)
{
return
QString(
QString::fromLocal8Bit(s.c_str()));
}
string q2s(const
QString &s)
{
return
string((const char *)s.toLocal8Bit());
}
QString s2q(const
string &s)
{
return
QString(
QString::fromLocal8Bit(s.c_str()));
}
string q2s(const
QString &s)
{
return
string((const char *)s.toLocal8Bit());
}
-----------------------------QSting与String--[2]--------------------------------
http://blog.csdn.net/mociml/archive/2010/04/28/5539124.aspx
string s = qstr.toStdString();
QString qstr2 = QString::fromStdString(s);
---------------------------------
QSting与int-------------------------------------
QString qstr = QString::number(123);
int i = atoi(qstr.toStdString().c_str());
也可以这样:int i = atoi(qstr.ascii());
---------------------------------QSting与Char-----------------------------------
http://apps.hi.baidu.com/share/detail/33589899
1、char型数组或字符串指针转换成QString
char str_data[512];
QString qs_data;
............
qs_data = QString::fromLocal8Bit(str_data,512); //当然也可以用强制类型转换QString(str_data)
2、QString类型转换为 char指针类型
const char * str_data; //这里一定要加上const,否则会报错!
QString qs_data;
...........
str_data = qs_data.ascii();