您的位置:首页 > 编程语言 > Qt开发

Qt之std::string与QString之间的转换

2013-09-20 20:08 1281 查看
在使用QT和C++进行开发的时候,由于两者的数据类型不完全相同,需要进行转换。下面介绍QStringstring类型相互转换的方法。(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);

---------------------------------QStingint-------------------------------------

QString qstr =
QString::number(123);
int i = atoi(qstr.toStdString().c_str());
也可以这样:int i = atoi(qstr.ascii());
---------------------------------QStingChar-----------------------------------
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: