Project Move from Qt 4 to Qt 5 项目工程的迁移
将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 项目工程的迁移的更多相关文章
- 解决 “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 ...
- Qt环境搭建(Qt Creator)+Visual Studio
1.http://www.cnblogs.com/ranjiewen/p/5318768.html 简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了 ...
- Qt介绍1---QPA(Qt Platform Abstraction)
Qt是一个夸平台的库(一直宣称“Qt everywhere”),但是Qt底层不是夸平台的.比如:Qt中Gui部件的核心类QWidget,该类除了qwidget.h 和 qwidget.cpp两个原文件 ...
- Qt Creator下应用CMake项目调试mex文件
网上可以找到很多应用Visual Studio编写.编译mex文件,并与MATLAB联合调试的文章.但这只限于Win平台,网上许多源码都是.mexa64的文件,它们的作者是怎么调试的呢?这里我介绍一下 ...
- [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)
本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...
- Qt语言家(Qt Linguist)更新翻译报错-Qt5.9-MinGW
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt语言家(Qt Linguist)更新翻译报错-Qt5.9-MinGW 本文地址:h ...
- 【学QT】2 - QT/E环境的建立
Arm-Linux嵌入式QT/E环境的建立(qt/e 3.x系列) QT/E 3.x系列比QT/E 2.x系列有非常大的改进,大大提高了开发进度,不再使用tmake,安装也更简单.但 ...
- Qt Creator提示"Qt没有被正确安装,请运行make install"的解决办法
笔者最近使用Qt在开发一些小程序,觉得这个框架设计确实很好,使用了信号和槽解决了组件之间的通讯问题,可以说是基于C++语言上一个非常大的创新,大大提高了开发人员的编码效率,也使整个C++语言更加抽象. ...
- Qt学习记录--Qt::CaseSensitive
Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度. 比较字符串的时候 Qt::CaseSe ...
随机推荐
- [leetcode]Permutation Sequence @ Python
原题地址:https://oj.leetcode.com/submissions/detail/5341904/ 题意: The set [1,2,3,…,n] contains a total of ...
- 魅族便签,是否能成为国内便签应用的No.1?
继前不久锤子科技推出便签 Android 新版后,近期魅族在PRO 6公布会上也公布了最新的魅族便签应用.这一次魅族把便签应用拓展到了整个Android体系,也就是说.其它不论什么的Android手机 ...
- Linux中搭建一个ftp服务器详解
来源:Linux社区 作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...
- Winform开发框架之通用Windows摄像头调用拍照--SNF快速开发平台3.3-Spring.Net.Framework
今天做了一个windows系统下调用摄像头.进行开启.关闭.拍照.设置等等功能演示. 进行源码贡献,欢迎大家下载使用 一.DEMO效果如下: 二.DEMO演示代码如下: using SNF.Utili ...
- Socket网络编程--聊天程序(7)
接上一小节,本来是计划这一节用来讲数据库的增删改查,但是在实现的过程中,出现了一点小问题,也不是技术的问题,就是在字符界面上比较不好操作.比如要注册一个帐号,就需要弄个字符界面提示,然后输入数字表示选 ...
- IOS开发之Storyboard应用
制作一个Tab类型的应用 制作一个表格视图 原型表格单元 设计自定义的原型单元格 为原型单元格设置子类 故事版(Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明 ...
- 【九天教您南方cass 9.1】 08 绘制等高线及对其处理
同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取测量空间中. [点击索取cass教程]5元立得 (给客服说暗号:“ ...
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-5 底层驱动之旋转编码器
源视频包下载地址:链接:http://pan.baidu.com/s/1mhENI9i密码:mf1x 银杏科技优酷视频发布区:http://i.youku.com/gingko8
- 深刻理解Python中的元类(metaclass)【转】
译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍然觉得 ...
- redis Sentinel部署
sentinel 系统用于管理多个 Redis 服务器(instance) 执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常. 提醒 ...