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

QString和char字符串数组之间的转换 (转)的更多相关文章

  1. QString和char字符数组之间的转换(QTextCodec.toUnicode方法,特别注意\0的问题)

    How can I convert a QString to char* and vice versa ?(trolltech) Answer:In order to convert a QStrin ...

  2. java字符数组char[]和字符串String之间的转换

    java字符数组char[]和字符串String之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 使用String.valueOf()将字符数组转换成字符串 void (){ cha ...

  3. C# 16进制与字符串、字节数组之间的转换(转)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串   //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToSt ...

  4. C# 16进制与字符串、字节数组之间的转换 (转载)

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine(, )); //十进制转八进制 Console.WriteLine(, )); / ...

  5. C#串口通讯,16进制与字符串、字节数组之间的转换。

    1.将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, ...

  6. C# 16进制与字符串、字节数组之间的转换

    1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToStrin ...

  7. Delphi字符串、PChar与字符数组之间的转换

    来自:http://my.oschina.net/kavensu/blog/193719 ------------------------------------------------------- ...

  8. C# 16进制与字符串、字节数组之间的转换(串口通讯中)

    1.c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString( ...

  9. Char* ,CString ,WCHAR*之间的转换

    关于Char* ,CString ,WCHAR*之间的转换问题 GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用 ...

随机推荐

  1. SQL Server 调优系列进阶篇 - 查询语句运行几个指标值监测

    前言 上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤.筛选条件分析.索引项优化等信息. 本篇我们分析在我们运行的过程中几个关键指标值的检测. 通过这些指标值来分析语句的运行问 ...

  2. repeat 中的 continue

    repeat a := -; then ShowMessage('') else begin Caption := ''; Continue;//不是立即 向上 返回 执行,要先向下 检查循环条件 是 ...

  3. java 缓冲区大小与下载速度的关系

    1.对于缓冲区空间的设定,要根据具体情况来定,如果存在大量的长信息(比如文件传输),将缓冲区定义的大些,可能更好的利用网络资源,如果更多的是短信息(比如聊天消息),使用小的缓冲区可能更好些,这样刷新的 ...

  4. DevExpress v17.2新版亮点—WPF篇(六)

    用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v17.2 新的Hamburger Menu.Sched ...

  5. JavaScript事件简述

    事件简述 技术一般水平有限,有什么错的地方,望大家指正. 事件是我们平时经常使用,这次就来了解一下事件.首先我们要明确几个概念,JavaScript是单线程,浏览器是多线程的,并不是所有的事件处理函数 ...

  6. FTP 主动模式 与被动模式

    今天在被电信运营商给的没有内网ip被nat后的内网ip访问我的ftp服务器时出现了,连接被关闭的错误,经过多番查询发现问题原因是因为NAT内网ip没有被有效地转换为外网ip,也即是说NAT对ftp协议 ...

  7. SWIFT Enumeration(1)

    Swift中定义Enumeration跟其它语言挺类似的,看如下定义一个星期的Enumeration enum Day:Int{ case Monday = 1, Tuesday,Wednesday, ...

  8. HDU 2813

    http://acm.hdu.edu.cn/showproblem.php?pid=2813 裸二分图最优匹配,需要用两个map把武将名字映射到点的序号上 #include <iostream& ...

  9. 按照Right-BICEP要求设计四则运算2程序的单元测试用例

    Right——结果是否正确? B——是否所有的边界条件都是正确的? I——能查一下反响关联吗? C——能用其它手段交叉检查一下吗? E——你是否可以强制错误条件发生? P——是否满足性能要求? 测试计 ...

  10. 7.2 TCP IP的11种状态

    先看TCP IP的10种状态,如下所示: 三次握手: 客户端A端发送SYN,然后进入SYN_SENT状态,服务器B端接收到SYN后,返回一个响应ACK,同时也发送一个SYN,然后B端进入SYN_RCV ...