【原创】QT4升级到QT5

2016年第一篇博客,新的一年新的开始,由于近一个月忙于另外一个项目,基本上没有时间更新博客。晚上回来收拾完已10点多。每天晚上抽出来半个小时,历时一个星期,今天终于将QT4的工程移植到QT5下。
由于QT的版本升级,导致很多代码出现不兼容情况,特别是汉字的支持,虽然网上很多有关QT5对汉字的支持,但是针对的项目和使用的方法不一样,不能使用“拿来主义”搞定出现的error。一切还要靠自己来解决。。。。
记录背景:移植过程中遇到最为棘手的问题,也就是调试时间最长的error记录下来,以便后期使用时做一个参考。
汉字。。。一切源头来源于汉字,一年前设计的项目,由于TCP和Modbus协议中需要有汉字的出现,最终导致今天出现的问题,最为一个程序员,我犯了最大的错误就是使用汉字,谨记此次的失误,日后不要出现。

1) QT5取消了QStringtoAscii的支持。
      原工程所有的toAscii,都将替换成toLatin1()
2) 如果你升级后的QTCreator打开.c或者.h文件时没有对UTF-8有很好的支持,那么你就要辛苦一下:
      在新版的creator重新建h文件和c文件。这个很重要,否则你即便使用对了函数,也未必能得到你想要的汉字。
3)如果QString中含有汉字,将其转变成QByteArray的方法:
         QTextCodec *pCodec = QTextCodec::codecForName( "GBK" );
    QByteArray data = pCodec->fromUnicode( strTCP );
4)如果char *中含有汉字,将其转成QString的方法:
    QTextCodec *pCodec = QTextCodec::codecForName( "GBK" );
    QString strQuery = pCodec->toUnicode(query);
    其中querychar  *型。

作者:小盒子
时间:2016-01-01 23:13PM
地点:大连


注:本文属小盒子原创,转载请与博主联系。谢谢合作


   
   
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值