(转载)QString和string类型相互转换

转载)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();
}
原文地址:https://www.cnblogs.com/Robotke1/p/3076263.html