• QString和char字符串数组之间的转换 (转)


    做串口通信时,碰到这样的问题,在Qt的界面中,我用QLineEdit对象负责显示发送和接收的文本,对其中的数据进行读取和显示使用的数据类型都是QString;但是,在对串口设备进行读写时,数据使用的形式都是char型指针(不知道是不是我理解的不透彻),所以就要解决QString和char型数组之间的转换。
             查阅了一些资料,并经过自己的验证,找到了下面的解决办法:
             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();
             这里我只给出了一种转换方法,并经过我的验证是可以使用的。其实还有很多办法可以实现转换,并可能比这个简单很多,大家可以尝试下!
    这里给希望深入学习Qt的朋友介绍个很好的网站,自己感觉很受用,可能很多人都知道这个网址:http://doc.trolltech.com/3.3/index.html
    #Qt
    cyq (2013-11-21 9:44:19)
    view plain
    //#include "myclass.h"  
    #include <QtGui/QApplication>  
    #include <QtDebug>  
    #include <QString>  
      
    int main(int argc, char *argv[])  
    {  
        QApplication a(argc, argv);  
      
        QString str = “hello”; //QString转char *  
         QByteArray ba = str.toLatin1();  
        char *mm = ba.data();  
        qDebug()<<mm<<endl;  //调试时,在console中输出  
      
          QString nn = QString(QLatin1String(mm)); //char *转QString  
        qDebug()<<nn<<endl;  //调试时,在console中输出  
      
        //MyClass w;  
        //w.show();  
        return a.exec();  
    }
     
  • 相关阅读:
    十进制转任意进制
    整型与字符串转换
    最长递增子序列(动态规划)
    睡眠理发师问题
    区间最值问题(RMQ)
    分解质因子
    数字统计
    After all, tomorrow is another day.
    【USB电平】电脑USB电平
    【有源滤波】滤波基础知识
  • 原文地址:https://www.cnblogs.com/xihong2014/p/7604053.html
Copyright © 2020-2023  润新知