做串口通信时,碰到这样的问题,在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

posted on 2012-03-20 05:25  风行雪舞  阅读(19247)  评论(1编辑  收藏  举报
无觅相关文章插件,快速提升流量