qt4升级到qt5的一些问题
由于最近项目使用的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
顺道说一句:qt可以使用QAxWidget或者QWebView来嵌入web页面,但是qt的ui刷新时在主线程中刷新的,因此,当web窗口刷新时,整个app都会假死,建议使用cef来嵌入浏览器,功能强大,不过动态库很大
最新文章
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
- centos7配置静态ip后仍然显示动态ip
- [转]关于Python中的yield
- 第一款支持容器和云部署的开源数据库Neo4j 3.0
- Python多进程编程
- duilib -- Label控件的bug(转载)
- 临时改GCC编译器,重启后失效
- WEB网站性能优化
- txt文件保存问题
- 用扩展方法实现DevExpress-GridControl级联效果
- Java读取ini配置
- 如何使用DirectDraw直接显示RGB、YUV视频数据(播放yuv)
- MTD的认识
- hdu 1045
- 第三章:Activity的生命周期
- 简单实用的jQuery分页插件
- 反向-代理 nginx for Mac 的配置以及使用
- python程序练习题集
- sql server timeout
- [Java][Web]Response学习
热门文章
- UOJ#346. 【清华集训2017】某位歌姬的故事 动态规划
- netty编程一:快速入门
- 记录一些基本的git命令
- caffe编译错误记录
- Goland2019.1破解
- <;算法图解>;读书笔记:第2章 选择排序
- 3dmax 笔记本电脑
- CF719E. Sasha and Array [线段树维护矩阵]
- BZOJ.4184.shallot(线段树分治 线性基)
- [CF893F] Subtree Minimum Query