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的朋友介绍个很好的⽹站,⾃⼰感觉很受⽤,可能很多⼈都知道这个⽹址:lltech/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 = Latin1();
char *mm = ba.data();
qDebug()<<mm<<endl;  //调试时,在console中输出
QString nn = QString(QLatin1String(mm)); //char *转QString
qDebug()<<nn<<endl;  //调试时,在console中输出
/
/MyClass w;
//w.show();
();
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。