错误:'QtGui / QMainWindow':没有这样的文件或目录:Qt 5.1.1

时间:2013-12-01 15:59:48

标签: windows qt5.1

我已经安装了Qt5.1.1并创建了一个新的Gui应用程序。 mainwindow.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>

它有效。

我只是想知道为什么默认代码是错误的,以及如何使defauly代码正确。

2 个答案:

答案 0 :(得分:14)

您可能还有其他选择。

您还可以在widgets文件中添加.pro,例如

<强> greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

.pro文件中添加此行,现在您无需担心Qt版本并包含<QtGui/QMainWindow><QtWidgets/QMainWindow>

等文件

希望它对你有用。

答案 1 :(得分:2)

我有同样的问题,但它有细微差别。如果该代码位于 .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