Qt 4 项目迁移到 Qt 5 问题
来源:互联网 发布:福州弘扬软件 编辑:程序博客网 时间:2024/04/25 14:55
该文章原创于Qter开源社区(www.qter.org),作者 yafeilinux,转载请注明出处!
1)编码问题
我们打开现有的 Qt 4 版本的 helloworld 源码目录(此代码下载请点此链接),然后将 helloworld.pro 文件拖入到 Qt Creator 中打开该项目,这时会跳转到项目模式,进行项目配置,也就是选择构建套件。这里默认使用桌面版的 Qt 5.2 即可,如下图所示,然后点击 ConfigureProject 按钮。
下面我们打开项目文件列表中的 helloDialog.cpp 文件,因为这里有一行中文注释,所以出现了“错误:无法用 UTF-8 -编码解码 hellodialog.cpp。无法编辑。”的错误提示,这是因为该文件不是使用 UTF-8 编码的,而其中的中文无法使用 UTF-8 自动解码造成的。为了使中文可以正常显示,并且以后不再出现该错误提示,我们可以通过下面的方法手动来将文件设置为 UTF-8 编码。
首先点击错误提示后面的选择编码按钮(也可以使用“编辑”->“选择编码”菜单项),然后选择 GB18030/gb18030/ibm-1392/windows-54936 一项,最后点击按编码重新载入按钮。如下图所示。
完成后发现已经可以正常显示中文了,但是如果关闭项目重新打开,中文依然无法正常显示。所以我们还需要继续设置。再次选择“编辑”->“选择编码”菜单项,然后选择 UTF-8 一项,点击按编码保存按钮。如下图所示。
这样设置完后,文件已经使用 UTF-8 进行保存了,后面再打开也不会出现编码错误了。
2)代码问题
问题一:
下面先直接运行程序,这时会在问题面板出现 QtGui/QApplication: No such file or directory的问题提示。如下图所示。
我们双击该问题,定位到出错位置,这时跳转到了 main.cpp 文件中,可以看到第一个头文件包含找不到路径。如下图所示。
出现原因:
Qt5 里不再用 QtGui 模块,而是使用 QtWidgets 模块。
解决方法:
1)头文件包含全部不需要 QtGui,如将 main.cpp 文件中的 #include <QtGui/QApplication> 修改为 #include <QApplication>
2)在 .pro 项目文件中添加:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets(在高于 Qt4 的版本中要添加 QT += widgets,也就是说要使用 widgets 模块),实际上,直接写 QT += widgets 即可,不需要加:“greaterThan(QT_MAJOR_VERSION, 4):”。
问题二:Qt 5 使用原来的 QT4项目时 QWebView 、QWebFrame 等类无法编译通过。
出现原因:
QWebView 、QWebFrame、QWebPage、QWebInspector 等这些类被单独移到了 QtWebKitWidgets 模块,不再在 QtWebKit 模块当中;而 QWebHistory 等类仍然保留在 QtWebkit 模块中。
解决方法:
使用到 QWebPage 等 webkit 相关可视部件的,Qt5 单独放到了QtWebKitWidgets 模块中,所以在使用了QWebPage类的地方:
1)在 *.pro 中要加 QT += webkitwidgets
2)在 *.cpp 中加头文件:#include <QtWebKitWidgets/QWebPage> 或者 #include<QWebPage>
参考资料:
http://bbs.qter.org/
http://blog.csdn.net/libaineu2004
- Qt 4 项目迁移到 Qt 5 问题
- Qt4项目迁移到Qt5问题:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- Qt4项目迁移到Qt5问题:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- Qt4项目迁移到Qt5问题:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets .
- Qt 4 迁移至 Qt 5
- [Qt教程] 第51篇 从Qt 4到Qt 5(一)Qt 5.2安装、程序迁移和发布
- 自学QT之Qt 4迁移至Qt 5
- 从Qt 4到Qt 5.2安装、程序迁移和发布
- QT项目升级(QT4到QT)
- QT项目相关问题
- qt工程release迁移到其他电脑后图片无法显示的问题
- 从Qt 4到Qt 5需要修改的地方
- Qt项目构建路径问题
- [Qt教程] 第52篇 从Qt 4到Qt 5(二)Qt 5框架介绍
- 迁移《Qt教程一 —— 第三章:家庭价值》到Qt 4.3.0
- QT项目
- QT项目升级(QT4.6.3到QT5.2)时,遇到的问题和解决方法
- QT项目升级(QT4.6.3到QT5.2)时,遇到的问题和解决方法
- P2P中NAT之间的打洞可能性
- N个值得推荐的iOS开源框架简介(★firecat推荐★)
- CF 551D GukiZ and Binary Operations
- UIViewController中layoutSubViews的时序记录
- Leetcode Implement Trie (Prefix Tree)
- Qt 4 项目迁移到 Qt 5 问题
- eclipse将安卓项目commit至github本地仓库后,项目bin文件夹下不生成apk且运行报错
- 我所理解cocos2d-x 3.6 lua -- Cocos如何绑定Lua自定义类
- spark RDD的基本命令
- JAVA基础第二天
- 六月十七号
- 黑马程序员---2015.6.18笔记---线程--死锁
- Hibernate实体映射——单边的一对多关系
- install xrdp server