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来嵌入浏览器,功能强大,不过动态库很大

时间: 2024-10-13 23:29:19

qt4升级到qt5的一些问题的相关文章

QT4 升级到 QT5 升级总结

QT4 升级到 QT5 改动: PC部分: [改 QTDIR 变量] 在工程根目录下找到 .user 文件 ,  如 InnoTabPlugin.vcxproj.user 修改指向你的 QT5 根目录: <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|Win32'"> <QTDIR>C:\qt\Qt5.2.1\5.2.1\msvc2010</QTDIR> <

Qt4升级到Qt5

QtWidgets作为一个独立的模块 例如编译时错误 error: QMainWindow: No such file or directory error: QToolButton: No such file or directory error: QWidget: No such file or directory 解决办法: 在*.pro文件里添加: QT += widgets 更改 #include 为 #include 程序现在应该就可以运行了,但是有时可能需要更加明确的包含 #inc

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

QT4升级到QT5改动: PC部分: [改QTDIR变量] 在工程根目录下找到.user文件, 如InnoTabPlugin.vcxproj.user 修改指向你的QT5根目录: <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|Win32'"> <QTDIR>C:\qt\Qt5.2.1\5.2.1\msvc2010</QTDIR> </PropertyGro

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

本文转载自http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87 一.将某个QT4项目改成QT5遇到的问题 该Qt4项目以前是使用Qt4.7.4 MSVC2008开发的,因为使用到了OWC10(Office Web Components),使用MSVC编译器的话无法正常升级到Qt4.8.x和Qt5,于是将编译器转成了MinGW4.7,Qt升级到了4.8.4.今天Qt 5.0.1-MinGW预编译版本发布了,于是就拿它练手,将它升级到Qt

Qt4升级Qt5注意问题

Qt4升级Qt5注意问题 Qt4过渡到Qt5的项目一开始就受阻,记录一下遇到的下面的问题 --->编译遇到类似错误: error: QCalendarWidget: No such file or directory error: QComboBox: No such file or directory error: QDateEdit: No such file or directory 解决方案如下: 1.在*.pro文件里添加: QT += widgets 2.修改 #include <

Qt4过渡至Qt5

转 QtWidgets作为一个独立的模块 例如编译时错误 error: QMainWindow: No such file or directory error: QToolButton: No such file or directory error: QWidget: No such file or directory 解决办法: 在*.pro文件里添加: QT += widgets 更改 #include 为 #include 程序现在应该就可以运行了,但是有时可能需要更加明确的包含 #i

QT4工程转换为QT5工程方法

1.  #include <QtGui/QApplication> ---> No such file or directory 问题的解决 (原因是Qt5源文件位置的改动)1).pro文件中,在 QT       += core gui 下面一行添加greaterThan(QT_MAJOR_VERSION, 4): QT += widgets2)在mian.cpp文件中将#include <QtGui/QApplication>修改为 #include <QAppli

Qt4程序转向Qt5

C++ GUI Programming with Qt 4上一段代码,编译不能通过: 问题一:编译按钮为灰色,compile output提示找不到  .pro文件, 原因是有中文路径问题,导致不能识别.pro文件,全部用英文路径即可. 问题二: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 finddialog . cpp : In constructor 'FindDialog::FindDialog(QWidget*)' : finddialog .

QT项目升级(QT4.6.3到QT5.2)时,遇到的问题和解决方法

QT4升级到QT5修改: PC部分: [改QTDIR变量] 在project根文件夹下找到.user文件, 如InnoTabPlugin.vcxproj.user 改动指向你的QT5根文件夹: <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|Win32'"> <QTDIR>C:\qt\Qt5.2.1\5.2.1\msvc2010</QTDIR> </Prop