web-dev-qa-db-ja.com

エラー: 'QtGui / QMainWindow':そのようなファイルまたはディレクトリはありません:Qt 5.1.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>

できます。

なぜデフォルトのコードが間違っているのか、そしてどのようにデフォルトのコードを正しくするのか疑問に思います。

7
kalryoma

別のオプションがあるかもしれません。

_.pro_ファイルにwidgetsを次のように追加することもできます。

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

この行を_.pro_ファイルに追加することで、Qtバージョンを気にする必要がなくなり、_<QtGui/QMainWindow>_や_<QtWidgets/QMainWindow>_などのファイルをインクルードできます。

それがあなたに役立つことを願っています。

14
AB Bolim

私も同じ問題を抱えていましたが、微妙な違いがあります。そのコードが。hファイルにある場合:

    #if QT_VERSION >= 0x050000
    #include <QtWidgets/QMainWindow>
    #else
    #include <QtGui/QMainWindow>
    #endif

エラーが表示されます。 QT_VERSIONが正しく定義されていないようです。しかし、このコードをに移動すると .cpp ファイル、大丈夫です。この問題は次のように解決されました。
1。に追加 。プロ これを提出する:

    greaterThan(QT_MAJOR_VERSION, 4) {
        QT += widgets
        DEFINES += HAVE_QT5
    }

2.に追加します .h これを提出してください:

    #ifdef HAVE_QT5
    #include <QtWidgets/QMainWindow>
    #else
    #include <QtGui/QMainWindow>
    #endif
2
lebendig