做串⼝通信时,碰到这样的问题,在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 int main(int argc, char *argv[]) { QApplication a(argc, argv); QString str = “hello”; //QString转char * QByteArray ba = str.toLatin1(); char *mm = ba.data(); qDebug()< 因篇幅问题不能全部显示,请点此查看更多更全内容