zoukankan      html  css  js  c++  java
  • 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​

    C++接口变化

    移植C++应用 qt 5

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

  • 相关阅读:
    机器学习中 margin loss 、hinge loss 和 ramp loss 的区别
    ML 论文中 用到的 temperature
    对一系列 pickle load 进行解包,只保留最后几个
    Linux 常用命令速览
    Numpy 的 dtype 和 astype 的区别
    远程配置 tensorflow 环境
    pytorch 的一些坑
    Conda 配置虚拟 pytorch 环境 和 Tensorflow 环境
    Ubuntu 远程离线配置 pytorch 运行环境
    3.Vue起步
  • 原文地址:https://www.cnblogs.com/swarmbees/p/5621505.html
Copyright © 2011-2022 走看看