由于最近项目使用的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的一些问题的更多相关文章

  1. 【Qt开发】QT4 升级到 QT5 改动

    QT4 升级到 QT5 改动: PC部分: [改 QTDIR 变量] 在工程根目录下找到 .user 文件 ,  如 InnoTabPlugin.vcxproj.user 修改指向你的 QT5 根目录 ...

  2. Qt4升级到Qt5

    QtWidgets作为一个独立的模块 例如编译时错误 error: QMainWindow: No such file or directory error: QToolButton: No such ...

  3. QT4项目升级到QT5遇到的问题和解决方法

    QT4升级到QT5改动: PC部分: [改QTDIR变量] 在工程根目录下找到.user文件, 如InnoTabPlugin.vcxproj.user 修改指向你的QT5根目录: <Proper ...

  4. 将某个Qt4项目升级到Qt5遇到的问题[转]

    该Qt4项目以前是使用Qt4.7.4 MSVC2008开发的,因为使用到了OWC10(Office Web Components),使用MSVC编译器的话无法正常升级到Qt4.8.x和Qt5,于是将编 ...

  5. Qt4升级Qt5注意问题

    Qt4升级Qt5注意问题 Qt4过渡到Qt5的项目一开始就受阻,记录一下遇到的下面的问题 --->编译遇到类似错误: error: QCalendarWidget: No such file o ...

  6. [转]将某个Qt4项目升级到Qt5遇到的问题

    原文:http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87晚上花了4个小时,将以前的一个项目从Qt 4.8.4-MinGW升级到了Qt5. ...

  7. 将某个Qt4项目升级到Qt5遇到的问题(13条方法)

    本文转载自http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87 一.将某个QT4项目改成QT5遇到的问题 该Qt4项目以前是使用Qt4.7 ...

  8. 将某个Qt4项目升级到Qt5遇到的问题

    本文转载自http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87 一.将某个QT4项目改成QT5遇到的问题 该Qt4项目以前是使用Qt4.7 ...

  9. ubuntu同时安装qt4.8和qt5.7

    这是ubuntu默认安装(从apt安装)的路径和相关文件,建议编译安装到/opt目录下,使用./configure --prefix=/opt/Qt4.8 /usr/share/qt4 /usr/sh ...

随机推荐

  1. Python3-Cookbook总结 - 第三章:数字日期和时间

    第三章:数字日期和时间 在Python中执行整数和浮点数的数学运算时很简单的. 尽管如此,如果你需要执行分数.数组或者是日期和时间的运算的话,就得做更多的工作了. 本章集中讨论的就是这些主题. Con ...

  2. vue小白必看的生命钩子函数图解

    还有3个钩子并未出现在图上: 1.activated生命周期钩子函数在keep-alive 组件激活时调用,该钩子在服务器端渲染期间不被调用. 2.deactivated生命周期钩子函数在keep-a ...

  3. vue小技巧之偷懒的文件路径——减少不必要的代码

    众所周知,我们写vue项目的时候都会创建很多个文件,尤其是一些中大型项目,会有很深的文件夹,当你去引入的时候,要写很长的路径比如我要引入一个css文件, 必须得 import  '../../../s ...

  4. Angular6 用户自定义标签开发

    参考地址:https://www.jianshu.com/p/55e503fd8307

  5. Analysis of Web.xml in Hello1 project

    一.web.xml文件介绍 The web.xml file contains several elements that are required for a Facelets applicatio ...

  6. IOS8,IOS8.1等系统出现锁屏状态下WIFI断开问题的解决办法!

    网络设备:TP-Link 300M无线路由器.DLINK 300M无线路由器.HP 300M无线路由器.APPLE AirPort无线路由器 终端:iphone5S+IOS8.1 故障现象:除appl ...

  7. 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...

  8. vue学习笔记:在vue项目里面使用引入公共方法

    首先新建一个文件夹:commonFunction ,然后在里面建立 一个文件common.js 建立好之后,在main.js里面引入这个公共方法 最后是调用这个公共方法 测试一下,我在公共方法里面写了 ...

  9. python3 stack/ queue和deque模块

    '''栈stack 先进后出FILO (first in last out)'''lst = []lst.append("张一山")lst.append("杨紫" ...

  10. 【RL-TCPnet网络教程】第22章 RL-TCPnet之网络协议IP

    第22章      RL-TCPnet之网络协议IP 本章节为大家讲解IP(Internet Protocol,网络协议),通过前面章节对TCP和UDP的学习,需要大家对IP也有个基础的认识. (本章 ...