Qt5.4中遇到找不到头文件QApplication等。
从新学习Qt时,重装了Qt5.4,当运行Hello World例子时,遇到了下列的情况
<span style="font-size:18px;">#include <QApplication> #include <QDialog> #include <QLabel> int main(int argc, char *argv[]) { QApplication a(argc,argv); QDialog w; QLabel label(&w); label.setText("Hello World! i am QT"); w.show(); return a.exec(); } </span>
提示错误找不到:
#include <QApplication>
#include <QDialog>
#include <QLabel>
一直纠结了快一天网上也找不到答案,摸索了很久,最后发现是出现原因:Qt5后不再用QtGui模块,而是使用QtWidgets模块。
所以在.pro文件中添加
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
完美解决问题。。。。
顺便总结相关问题:
遇到的问题如下:
1. 由于Qt5将大部分桌面部件移到了Qt Widgets模块中,所以在.pro中要增加下面一行
QT += widgets
2. 程序中使用了OWC10,用到了ActiveQt,原来的做法是在.pro中加CONFIG += qaxcontainer,现在需要改成
QT += axcontainer
当然了,原来的CONFIG += qaxcontainer也将去除
3. 为了充分使用C++11特性,在.pro中加下面一行
CONFIG += c++11
4. 在源文件中,凡是涉及到原QtGui中可视部件的,全要修改头文件引用,或者增加QtWidgets头文件,比如:
#include <QtGui/QPushButton> 要改成 #include <QPushButton> 或者 #include <QtWidgets/QPushButton>
在以前使用#include <QtGui>的地方,要加上 #include <QtWidgets>
5. 由于Qt5去除了QTextCodec::setCodecForCStrings()函数,所以在涉及到在cpp中直接写汉字的情况,有如下两种修改方法:
a) 如果以前的源文件编码是GBK的,则需要使用QString::fromLocal8Bit()函数将原来的汉字括起来;或者直接将源 文件编码转换成UTF-8的(缺点是MSVC编译器不能方便的使用了)。我使用了使用QString::fromLocal8Bit()来调用的方式(当 然了,另写便捷函数或宏来处理)
b) 如果以前的源文件编码是UTF-8的,则什么都不用动。
6. 以前使用QDesktopServices::storageLocation(QDesktopServices::xxxx)来获取一些系统目录,现在则要改成
QStandardPaths::writableLocation(QStandardPaths::xxxx)
7. 以前调用QFileDialog::getSaveFileName()时,如果在Windows下使用Native Dialog形式 指定文件名,则能正常显示,如今Qt5不能正常显示文件名。所以将它的后两个参数加上了,即 QFileDialog::getSaveFileName(xxx, xxx, xxx, xxx, 0, QFileDialog::DontUseNativeDialog), 这样就正常了,只是它的对话框不是系统形式的,暂且将就吧。
8. 还有,Qt5解决了ui_qaxselect.h文件的问题。在Qt4时代,使用ActiveQt时,老提示没有这个文件,需要自己找到源代码手工uic qaxselect.ui > ui_qaxselect.h来生成一下,Qt5中则解决了该问题。
9.使用到打印相关的类,Qt5单独放到了QtPrintSupport模块中,所以得加头文件#include <QtPrintSupport>,在.pro中要加QT += printsupport
10. 使用到QWebPage等webkit相关可视部件的,Qt5单独放到了QtWebKitWidgets模块中,所以得加头文件#include <QtWebKitWidgets>,在.pro中要加QT += webkitwidgets
11. Qt4中的cleanlooks、plastique、cde、motif等主题样式没有,新加了个fusion,好吧,问题是我的一 个项目框架使用的是cleanlooks主题样式然后加自定义样式表,这下可好,升级Qt5后,样子有的就与windowsvista或fusion不相 符或有缺陷,得调整一下了。所以,对主题样式依赖比较严重的程序,要衡量一下是否要升级到Qt5了。
12. .pro文件中的TARGET在Qt4(qmake v2)中是可以不填写的,那么它就从自动采用.pro文件名字,而在Qt5中(qmake v3)这个TARGET不可不写。
13. Q_WS_XX的宏不可用了,使用Q_OS_XX代替
Qt5.4中遇到找不到头文件QApplication等。相关推荐
- 当Android工程中提示你找不到头文件,但你已经设置头文件路径了
虽然在Android.mk文件中,配置了LOCAL_C_INCLUDES路径,但是工程中的红色叉号一直提示找不到头文件 这时,你在工程树目录中展开Includes项,捣鼓捣鼓,重新build下,或许就 ...
- android r 编译找不到头文件_嵌入式开发之交叉编译程序万能命令_以freetype为例...
6.4 交叉编译程序:以freetype为例 使用buildroot来给ARM板编译程序.编译库会很简单, 以后系统讲解buildroot时再使用buildroot. 现在我们还是手工交叉编译free ...
- xcode引入sdk_解决Xcode引入第三方SDK找不到头文件
一,引入第三方sdk时找不到头文件问题: 我在mac mini,Xcode6.x的环境下引入了第三方SDK,同Xcode自带的framework同放在工程的Frameworks路径下,想在代码中使用第 ...
- C++找不到头文件问题
在我们直接运行github上面下载下来的项目时,难免会出现很多奇怪的问题. 其中的一个问题就是找不到头文件 但是我们明明可以手动在文件夹中找到这些头文件的位置,为什么编译器他就是找不到呢? 这是因为编 ...
- linux gcc 编译找不到头文件,找不到库
找不到头文件 解决方式 (头文件均为编译时刻使用) 1.把头文件路径写成绝对路径,把路径写全,如 (相对路径也行) #include "/usr/include/stdio.h" ...
- 使用cocoapods时,import 找不到头文件。
问题描述:使用cocoapods时,import 找不到头文件. 问题原因:这是因为还没设置头文件的目录. 解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写 ...
- 10.29 工作笔记 ndk编译C++,提示找不到头文件(ndk-build error: string: No such file or directory)...
ndk编译C++.提示找不到头文件(ndk-build error: string: No such file or directory) 被这个问题弄得愁眉苦脸啊.心想为啥一个string都找不到呢 ...
- IAR 编译时找不到头文件的解决方法
IAR 编译时找不到头文件的解决方法 参考文章: (1)IAR 编译时找不到头文件的解决方法 (2)https://www.cnblogs.com/kunx/p/9248106.html 备忘一下.
- Linux 编译找不到头文件
Linux下使用gcc编译找不到头文件,但是查看 系统头文件件存放目录 /usr/local/include 发现头文件确实存在, 这是为什么呢? 这是因为Linux下的默认头文件路径 不包含 /u ...
最新文章
- 怎样能拿到第一份编程工作?这里告诉你答案 | 码书
- python 三维画图 坐标值相等_python程序员的表白
- Android开发工具新接触
- oeasy php,oeasy教您玩转linux010106这儿都有啥 ls
- 把HTML代码上传到gitee,使用git上传项目到gitee以及VS使用git管理项目
- (计算机组成原理)第二章数据的表示和运算-第二节5:定点数乘法运算(原码/补码一位乘法)
- 个性潮流的设计PSD分层模板
- mysql典型安装和自定义_Mysql8.0.19下载安装—windows版本自定义安装
- 甲骨文将关闭Sun开源软件项目托管网站
- SAP BPC最佳实践-BPC安装及配置的常见问题
- 18、Windows API 图形用户界面(2)
- 时间序列-N_LSTM
- 7-2 温度转换 (5 分)
- DiskCatalogMaker for Mac(磁盘管理工具)
- Ubuntu18.04下Tensorlayer安装
- 【储留香系列】如何构建一个拖垮公司的备份系统
- 精品软件 推荐 常用软件 游戏的 运行库 下载 合集 3D game 玩游戏的一定要收藏一下。...
- 聊聊关于软件质量的思考
- 5张图,看懂数据分析体系
- 好消息,Vue3官方文档出中文版的啦!
热门文章
- java以下属于合法标识符的是_2012年计算机二级Java合法标识符章节练习题及答案...
- c++和java哪个难_为什么说C语言比Java难?
- java angularjs 跨域访问_AngularJS实现跨域请求
- android多图片拖动,Android实现图片拖动效果
- linux没有c编译器,兄弟们,我这有台电脑里的Linux缺少cc(C编译器),我该怎么把它补上去啊?急啊!!!...
- java生成world文件_Hello World 项目创建与项目配置文件介绍
- layui中列表用文字代表指定数字
- MIPI - DVP
- 炒股应只做确定的上涨
- 李笑来登GitHub趋势榜第一,教你自学编程,含37%“硬核鸡汤”