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

本文转自博客园Grandyang的博客,原文链接:Project Move from Qt 4 to Qt 5 项目工程的迁移,如需转载请自行联系原博主。

相关文章
|
网络协议 容器
【qt】 TCP编程小项目
【qt】 TCP编程小项目
363 0
|
XML 数据可视化 C语言
001 Qt_从零开始创建项目
本文是Qt专栏的第一篇,介绍了如何创建一个Qt项目。
553 4
|
存储 文件存储 数据库
【QT项目】QT项目综合练习之简易计数器(QT6+文件存储)
【QT项目】QT项目综合练习之简易计数器(QT6+文件存储)
394 2
|
C++ Windows
第1个Qt项目:计算器
第1个Qt项目:计算器
489 1
第1个Qt项目:计算器
【Qt项目专栏】贪吃蛇小游戏1.0
【Qt项目专栏】贪吃蛇小游戏1.0
685 5
【qt】平面CAD(计算机辅助设计 )项目 上
【qt】平面CAD(计算机辅助设计 )项目 上
302 0
CMake自动打包--Qt项目
CMake自动打包--Qt项目
306 0
|
数据安全/隐私保护
【qt】考试系统项目
【qt】考试系统项目
295 0
|
XML Linux 程序员
【Qt】项目代码
【Qt】项目代码