(转载)http://blog.csdn.net/yang_hui1986527/article/details/5273805
在使用QT和C++进行开发的时候,由于两者的数据类型不完全相同,需要进行转换。下面介绍QString和string类型相互转换的方法。(QT4.6上已测试可用。)
1、在头文件中添加inlucde信息和转换函数声明:
#include <QString>
#include <vector>
#include <iostream>
#include <string>
using namespace std;
QString s2q(const string &s);
string q2s(const QString &s);
2、在主体CPP文件中添加以下转换函数即可:
QString s2q(const string &s)
{
return QString(QString::fromLocal8Bit(s.c_str()));
}
string q2s(const QString &s)
{
return string((const char *)s.toLocal8Bit());
}
#include <QtGui> #include "mainwindow.h" #include <iostream> using namespace std; int main(int argc, char *argv[]) { QApplication a(argc, argv); QString name("Qt test!"); string info = name.toAscii().data(); // 将QString转化成了string类型 qDebug() << info.c_str(); info = "IT is good!"; name = info.c_str(); // 将string类型转化成了QString类型 qDebug() << name; MainWindow w; w.show(); return a.exec(); }