web-dev-qa-db-ja.com

QDialogはそのようなファイルまたはディレクトリではありません-QtWindows

Qt5.0に基づいてQtCreator2.6.1をインストールしました。

4.8で作成されたプロジェクトを開こうとしていますが、コンパイルできません。 「そのようなファイルやディレクトリではない」というエラーが表示され続けます。

error: C1083: Cannot open include file: 'QtGui/QApplication': No such file or directory 

error: C1083: Cannot open include file: 'QDialog': No such file or directory 

error: C1083: Cannot open include file: 'QMainWindow': No such file or directory 

error: C1083: Cannot open include file: 'QWidget': No such file or directory

などなど。

Qmake.exeパスをPATHに追加しました...何か他のことをする必要がありますか?

8
Nick L Scott

Qt4からQt5への移行ガイドをお読みください。 Link1Link2Link

Qt4と比較したQt5の主要な内部インフラストラクチャの変更の1つは、QtGuiモジュールから新しいQtWidgetsモジュールへのウィジェットの分割です。これには明らかに少なくともビルドシステムの変更が必要ですが、QtGuiモジュールに残っているヘッダーからインクルードが削除されたため、以前は必要なかったヘッダーのインクルードをダウンストリームで追加する必要もあります。

Qt4からQt5への移植におけるもう1つのインクルード関連の問題は、QtWidgetsモジュールに移動したクラスのインクルードの処理です。 Qt4ベースのコードは

#include <QtGui/QWidget>
This must be updated to either

#include <QtWidgets/QWidget>
Or more portably (Which works in Qt 4 and Qt 5):

#include <QWidget>
19
pnezis

私はこの問題を抱えていました、2つの変更を加えました

  1. echo "QT + =ウィジェット" >> /fileProject.pro

  2. qDialog宣言を含むファイルに#includeQDialogを追加します

以前はQtGuiを含めるだけで十分でしたが、QT5はウィジェットをより多くの.hファイルに分割するため、ウィジェットを含める必要があります。たとえば、QtMenuBarはQtMenu.hに含まれていましたが、QtMenuBar.hを#includeする必要があります。

6
rotovator