为什么qt种提示找不到#include <QApplication>
来源:互联网 发布:叉叉助手获取数据失败 编辑:程序博客网 时间:2024/06/16 16:12
转载自:http://www.cnblogs.com/nowornever-L/p/5665945.html
从新学习Qt时,重装了Qt5.4,当运行Hello World例子时,遇到了下列的情况
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代替.
- 为什么qt种提示找不到#include <QApplication>
- QT5找不到#include<QApplication>解决办法
- 问题:Qt Creator 为什么找不到 include<phonon>
- 解决QT中错误error: QApplication: No such file or directory #include <QApplication>
- Qt QApplication
- QT编译错误 No such file or directory #include<QApplication>解决方法
- Qt错误:Qt提示找不到slot()函数
- QT Embedded-----QApplication
- Qt QApplication 类简介
- qt QApplication类
- QT之QApplication
- 【QT】QApplication简介
- Qt--QCoreApplication、QGuiApplication、QApplication
- 从Qt5的改变看最佳头文件包含风格?QT5找不到#include<QApplication>头文件在哪里
- 从Qt5的改变看最佳头文件包含风格?QT5找不到#include<QApplication>头文件在哪里
- Qt5.2.0创建空Qt项目时提示 "QApplication": No such file or directory 解决方案
- QT编译工程提示找不到QWebView
- Qt int QApplication::exec() [static]
- 产生不重复随机数-with python
- NWPU省赛选拔2017
- crtmpserver搭建直播点播平台
- Unity 求两个向量间夹角
- 线程阶段测试分析
- 为什么qt种提示找不到#include <QApplication>
- Eclipse 使用 jdbc 连接 mysql
- javascript
- hdu 5980 · Find Small A【位运算】【手速题】
- C++单刷《机器学习实战》之二——决策树
- git 安装与SSH配置
- [leetcode]: 485. Max Consecutive Ones
- SAPUI5 (35)
- 2440超详细uboot移植笔记(一)------分析源码