码迷,mamicode.com
首页 > 其他好文 > 详细

qt4升级到qt5的一些问题

时间:2016-06-27 21:46:15      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

由于最近项目使用的qt版本从qt4.8升级到qt5.5,虽然从4到5的变化不大,不过还是有许多的问题需要记录一下,希望可以帮助到更多的人?

1、由于Qt5将大部分桌面部件移到了Qt Widgets模块中?,因此在保护QtGui的地方需要包含QtWidgets模块

2、乱码问题。

    方式针对vs,由于window历史原因,vs上使用utf8编码时,std::string(标准串)会乱码,因此vs上暂时使用gbk编码。Qt5去 除了QTextCodec::setCodecForCStrings()函数,所以在涉及到在cpp中直接写汉字常量的情况,直接使用宏 QStringLiteral包裹,例如QStringLiteral("我是汉字");如果汉字存储于变量中则使用fromLocal8bit静态方法。

   针对linux,直接使用gbk编码,QString有成员方法toStdString,把QString类型的串转换为std::string,QString::fromStdString方法把标准串转化为QString类型

3、加入json模块

标准jion串都是以键值对的形式描述的?,键是字符串,值可以时json对象、json数组或者json值

QJsonValue:json串的值

QJsonObject:json对象

QJsonArray:json数组?

4、?使用到QWebView等webkit相关可视部件的,Qt5单独放到了QtWebKitWidgets模块中,所以得加头文件#include 

5、加入多个connect重载方法,新的connect链接时,会使用类型检测,在编译器如果不匹配会报错?

6、QtMutimedia替换了Phonon?

 

C++接口变化

移植C++应用 qt 5

 

顺道说一句:qt可以使用QAxWidget或者QWebView?来嵌入web页面,但是qt的ui刷新时在主线程中刷新的,因此,当web窗口刷新时,整个app都会假死,建议使用cef来嵌入浏览器,功能强大,不过动态库很大

qt4升级到qt5的一些问题

标签:

原文地址:http://www.cnblogs.com/swarmbees/p/5621505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!