从新学习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等。相关推荐

  1. 当Android工程中提示你找不到头文件,但你已经设置头文件路径了

    虽然在Android.mk文件中,配置了LOCAL_C_INCLUDES路径,但是工程中的红色叉号一直提示找不到头文件 这时,你在工程树目录中展开Includes项,捣鼓捣鼓,重新build下,或许就 ...

  2. android r 编译找不到头文件_嵌入式开发之交叉编译程序万能命令_以freetype为例...

    6.4 交叉编译程序:以freetype为例 使用buildroot来给ARM板编译程序.编译库会很简单, 以后系统讲解buildroot时再使用buildroot. 现在我们还是手工交叉编译free ...

  3. xcode引入sdk_解决Xcode引入第三方SDK找不到头文件

    一,引入第三方sdk时找不到头文件问题: 我在mac mini,Xcode6.x的环境下引入了第三方SDK,同Xcode自带的framework同放在工程的Frameworks路径下,想在代码中使用第 ...

  4. C++找不到头文件问题

    在我们直接运行github上面下载下来的项目时,难免会出现很多奇怪的问题. 其中的一个问题就是找不到头文件 但是我们明明可以手动在文件夹中找到这些头文件的位置,为什么编译器他就是找不到呢? 这是因为编 ...

  5. linux gcc 编译找不到头文件,找不到库

    找不到头文件 解决方式 (头文件均为编译时刻使用) 1.把头文件路径写成绝对路径,把路径写全,如 (相对路径也行) #include "/usr/include/stdio.h" ...

  6. 使用cocoapods时,import 找不到头文件。

    问题描述:使用cocoapods时,import 找不到头文件. 问题原因:这是因为还没设置头文件的目录. 解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写 ...

  7. 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都找不到呢 ...

  8. IAR 编译时找不到头文件的解决方法

    IAR 编译时找不到头文件的解决方法 参考文章: (1)IAR 编译时找不到头文件的解决方法 (2)https://www.cnblogs.com/kunx/p/9248106.html 备忘一下.

  9. Linux 编译找不到头文件

    Linux下使用gcc编译找不到头文件,但是查看 系统头文件件存放目录 /usr/local/include 发现头文件确实存在, 这是为什么呢? 这是因为Linux下的默认头文件路径  不包含 /u ...

最新文章

  1. 怎样能拿到第一份编程工作?这里告诉你答案 | 码书
  2. python 三维画图 坐标值相等_python程序员的表白
  3. Android开发工具新接触
  4. oeasy php,oeasy教您玩转linux010106这儿都有啥 ls
  5. 把HTML代码上传到gitee,使用git上传项目到gitee以及VS使用git管理项目
  6. (计算机组成原理)第二章数据的表示和运算-第二节5:定点数乘法运算(原码/补码一位乘法)
  7. 个性潮流的设计PSD分层模板
  8. mysql典型安装和自定义_Mysql8.0.19下载安装—windows版本自定义安装
  9. 甲骨文将关闭Sun开源软件项目托管网站
  10. SAP BPC最佳实践-BPC安装及配置的常见问题
  11. 18、Windows API 图形用户界面(2)
  12. 时间序列-N_LSTM
  13. 7-2 温度转换 (5 分)
  14. DiskCatalogMaker for Mac(磁盘管理工具)
  15. Ubuntu18.04下Tensorlayer安装
  16. 【储留香系列】如何构建一个拖垮公司的备份系统
  17. 精品软件 推荐 常用软件 游戏的 运行库 下载 合集 3D game 玩游戏的一定要收藏一下。...
  18. 聊聊关于软件质量的思考
  19. 5张图,看懂数据分析体系
  20. 好消息,Vue3官方文档出中文版的啦!

热门文章

  1. java以下属于合法标识符的是_2012年计算机二级Java合法标识符章节练习题及答案...
  2. c++和java哪个难_为什么说C语言比Java难?
  3. java angularjs 跨域访问_AngularJS实现跨域请求
  4. android多图片拖动,Android实现图片拖动效果
  5. linux没有c编译器,兄弟们,我这有台电脑里的Linux缺少cc(C编译器),我该怎么把它补上去啊?急啊!!!...
  6. java生成world文件_Hello World 项目创建与项目配置文件介绍
  7. layui中列表用文字代表指定数字
  8. MIPI - DVP
  9. 炒股应只做确定的上涨
  10. 李笑来登GitHub趋势榜第一,教你自学编程,含37%“硬核鸡汤”