我已经安装了Qt5.1.1
并创建了一个新的Gui应用程序。主窗口.h中的代码显示:
#if QT_VERSION >= 0x050000
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif
我认为这很好。但当我运行它时,我有这个:
error: C1083: Cannot open include file: 'QtGui/QMainWindow': No such file or directory
我知道何时更换
#if QT_VERSION >= 0x050000
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif
至
#include <QtWidgets/QMainWindow>
它是有效的。
我只是想知道为什么默认代码是错误的,以及如何使这个错误的代码正确。
您可能还有其他选择。
您也可以像一样在.pro
文件中添加widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
通过在.pro
文件中添加这一行,现在您只需要担心Qt版本,并包括像<QtGui/QMainWindow>
或<QtWidgets/QMainWindow>
这样的文件
希望它对你有用。
我也遇到了同样的问题,但有细微差别。如果该代码在.h文件中:
#if QT_VERSION >= 0x050000
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif
出现错误。QT_VERSION似乎没有正确定义。但是,如果我将此代码移到.cpp文件中,就可以了。问题解决如下:
1.将以下内容添加到.pro文件中:
greaterThan(QT_MAJOR_VERSION, 4) {
QT += widgets
DEFINES += HAVE_QT5
}
2.将以下内容添加到.h文件中:
#ifdef HAVE_QT5
#include <QtWidgets/QMainWindow>
#else
#include <QtGui/QMainWindow>
#endif