将Qt4的项目迁到Qt5中并不需要新建一个Qt5的工程,可以直接在原工程文件上修改,这里我们使用的是VS2010和Qt5.4的环境,我们需要做以下修改:

1. 在工程里找到这个文件:工程名.vcxproj.user,将里面的Qtdir路径修改为:C:\Qt\5.4\msvc2010_opengl。我的是在C盘。

2. 此时编译可能会有大量报错,主要是Qt5中模块的位置移动了很多,主要分下面三大块来修改:

QtGui/

#include <QMouseEvent> 改为 #include <QtGui/QMouseEvent>

#include <QPalette> 改为 #include <QtGui/QPalette>

#include <QKeyEvent> 改为 #include <QtGui/QKeyEvent>

#include <QDesktopServices> 改为 #include <QtGui/QDesktopServices>

#include <QImage> 改为 #include <QtGui/QImage>

#include <QImageReader> 改为 #include <QtGui/QImageReader>

QtCore/

#include <QTimer> 改为 #include <QtCore/QTimer>

#include <QDir> 改为 #include <QtCore/QDir>

#include <QXmlStreamWriter> 改为 #include <QtCore/QXmlStreamWriter>

#include <QSignalMapper> 改为 #include <QtCore/QSignalMapper>

#include <QDebug> 改为 #include <QtCore/QDebug>

#include <QUrl> 改为 #include <QtCore/QUrl>

#include <QSettings> 改为 #include <QtCore/QSettings>

#include <QFile> 改为 #include <QtCore/QFile>

#include <QString> 改为 #include <QtCore/QString>

#include <QCoreApplication> 改为 #include <QtCore/QCoreApplication>

#include <QAbstractItemModel> 改为 #include <QtCore/QAbstractItemModel>

#include <QStringList> 改为 #include <QtCore/QStringList>

#include <QObject> 改为 #include <QtCore/QObject>

QtWidgets/

#include <QtGui/QApplication> 改为 #include <QtWidgets/QApplication>

#include <QApplication> 改为 #include <QtWidgets/QApplication>

#include <QFileDialog> 改为 #include <QtWidgets/QFileDialog>

#include <QMessageBox> 改为 #include <QtWidgets/QMessageBox>

#include <QLineEdit> 改为 #include <QtWidgets/QLineEdit>

#include <QDialog> 改为 #include <QtWidgets/QDialog>

#include <QDialogButtonBox> 改为 #include <QtWidgets/QDialogButtonBox>

#include <QFormLayout> 改为 #include <QtWidgets/QFormLayout>

#include <QVBoxLayout> 改为 #include <QtWidgets/QVBoxLayout>

#include <QLabel> 改为 #include <QtWidgets/QLabel>

#include <QMainWindow> 改为 #include <QtWidgets/QMainWindow>

#include <QActionGroup> 改为 #include <QtWidgets/QActionGroup>

#include <QSpinBox> 改为 #include <QtWidgets/QSpinBox>

#include <QSlider> 改为 #include <QtWidgets/QSlider>

#include <QMenu> 改为 #include <QtWidgets/QMenu>

#include <QMenuBar> 改为 #include <QtWidgets/QMenuBar>

#include <QToolBar> 改为 #include <QtWidgets/QToolBar>

#include <QListWidget> 改为 #include <QtWidgets/QListWidget>

#include <QInputDialog> 改为 #include <QtWidgets/QInputDialog>

#include <QFormLayout> 改为 #include <QtWidgets/QFormLayout>

#include <QDialogButtonBox> 改为 #include <QtWidgets/QDialogButtonBox>

#include <QWidget> 改为 #include <QtWidgets/QWidget>

可能还有些情况没有在上面列举出来,我们可以到C:\Qt\5.4\msvc2010_opengl\include文件夹下搜索找不到的模块,然后将路径改正确即可。

3. Change Qt::WFlags to Qt::WindowFlags

4. 到Properties -> Linker -> Input -> Additional Dependencies 中删除原有的Qt4的lib,并加入下列Qt5的lib文件:

Enginio.lib
Qt5AxBase.lib
Qt5AxContainer.lib
Qt5Bluetooth.lib
Qt5CLucene.lib
Qt5Concurrent.lib
Qt5Core.lib
Qt5DBus.lib
Qt5Declarative.lib
Qt5Designer.lib
Qt5DesignerComponents.lib
Qt5Gui.lib
Qt5Help.lib
Qt5Location.lib
Qt5Multimedia.lib
Qt5MultimediaQuick_p.lib
Qt5MultimediaWidgets.lib
Qt5Network.lib
Qt5Nfc.lib
Qt5OpenGL.lib
Qt5OpenGLExtensions.lib
Qt5PlatformSupport.lib
Qt5Positioning.lib
Qt5PrintSupport.lib
Qt5Qml.lib
Qt5QmlDevTools.lib
Qt5Quick.lib
Qt5QuickParticles.lib
Qt5QuickTest.lib
Qt5QuickWidgets.lib
Qt5Script.lib
Qt5ScriptTools.lib
Qt5Sensors.lib
Qt5SerialPort.lib
Qt5Sql.lib
Qt5Svg.lib
Qt5Test.lib
Qt5UiTools.lib
Qt5WebChannel.lib
Qt5WebKit.lib
Qt5WebKitWidgets.lib
Qt5WebSockets.lib
Qt5Widgets.lib
Qt5WinExtras.lib
Qt5Xml.lib
Qt5XmlPatterns.lib
qtmain.lib

Project Move from Qt 4 to Qt 5 项目工程的迁移的更多相关文章

  1. 解决 “Project ERROR: Unknown module(s) in QT: webengine”以及“Your MaintenanceTool appears to be older than 3.0.2. .” 的办法

    1.环境 Windows10,Qt5.8.0 2.问题描述 需要使用到WebEngineView组件,在工程.pro中增加webengine后,Qt Creator应用程序输出中打印了 Project ...

  2. Qt环境搭建(Qt Creator)+Visual Studio

    1.http://www.cnblogs.com/ranjiewen/p/5318768.html 简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了 ...

  3. Qt介绍1---QPA(Qt Platform Abstraction)

    Qt是一个夸平台的库(一直宣称“Qt everywhere”),但是Qt底层不是夸平台的.比如:Qt中Gui部件的核心类QWidget,该类除了qwidget.h 和 qwidget.cpp两个原文件 ...

  4. Qt Creator下应用CMake项目调试mex文件

    网上可以找到很多应用Visual Studio编写.编译mex文件,并与MATLAB联合调试的文章.但这只限于Win平台,网上许多源码都是.mexa64的文件,它们的作者是怎么调试的呢?这里我介绍一下 ...

  5. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

  6. Qt语言家(Qt Linguist)更新翻译报错-Qt5.9-MinGW

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt语言家(Qt Linguist)更新翻译报错-Qt5.9-MinGW     本文地址:h ...

  7. 【学QT】2 - QT/E环境的建立

    Arm-Linux嵌入式QT/E环境的建立(qt/e 3.x系列)          QT/E 3.x系列比QT/E 2.x系列有非常大的改进,大大提高了开发进度,不再使用tmake,安装也更简单.但 ...

  8. Qt Creator提示"Qt没有被正确安装,请运行make install"的解决办法

    笔者最近使用Qt在开发一些小程序,觉得这个框架设计确实很好,使用了信号和槽解决了组件之间的通讯问题,可以说是基于C++语言上一个非常大的创新,大大提高了开发人员的编码效率,也使整个C++语言更加抽象. ...

  9. Qt学习记录--Qt::CaseSensitive

    Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度. 比较字符串的时候 Qt::CaseSe ...

随机推荐

  1. boost 线程安全队列

    threadnullmethodsprocessingobjectsignal // QueueImplementation.cpp : Defines the entry point for the ...

  2. 熬之滴水成石:最想深入了解的内容--windows内核机制(6)

    58 进程和线程(3) 说完进程再说说线程,线程相比于进程其实有更多可说的内容.首先实现线程调用的数据结构是个栈,该栈记录了调用方法的信息这里面也包括了函数调用及返回的地址.线程肯定是属于某个进程,其 ...

  3. MDX Cookbook 12 - 计算 SMA 简单移动平均 LastPeriods() 函数的使用

    先认识一下这几个名词 Moving Average (MA) 移动平均,或者叫做移动平均线,是技术分析中一种分析时间序列数据的工具.最常见的就是利用股价,回报或交易量等变数计算出移动平均.可以利用移动 ...

  4. 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis

    在写代码之前我们先了解一下这三个框架分别是干什么的? 相信大以前也看过不少这些概念,我这就用大白话来讲,如果之前有了解过可以跳过这一大段,直接看代码! SpringMVC:它用于web层,相当于con ...

  5. CoffeeScript简介 <一>

    介绍 coffeeScript是一种轻量级的编程语言,可以用编译器生成原生javascript代码.它简化了许多javascript繁琐的方式,可以让你用简单的方式直接使用一行程序代表javascri ...

  6. JAVA常用代码

    一. 判断是否包含某个注解.    1). 声明接口 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented ...

  7. lua -- 所有UI组件的基类

    -- 组件行为基础 local Behavior = class("Behavior"); function Behavior:ctor(name) self.owner = ni ...

  8. .NET+MVC+ORACLE存储分页查询一后端实现

    MemberController:public ActionResult UserList() { UserBll userBll = new UserBll(); string keyWords = ...

  9. 【iCore4 双核心板_ARM】例程九:ADC实验——电源监控

    实验原理: STM32内部集成三个12位ADC,iCore1S的所有电源经过电阻分压或者直接 接入STM32的ADC的输出通道内,输入电流经过高端电流检测芯片ZXCT1009F 输入到ADC的输入通道 ...

  10. <王二的经济学故事>读书笔记

    不是简单地用价格把供需弄平衡就完事了,座位分配给谁同样重要 一个成功的社会必须要有成功的人,必须要给成功的人应得的回报 需求曲线向下倾斜,价格越高需求越少 先来的都是那些时间最不值钱的 无论收入分配差 ...