12

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に追加しました...何か他のことをする必要がありますか?

4

2 に答える 2

20

Qt4からへの移行ガイドをお読みくださいQt5リンク1 リンク2 リンク3

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

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

#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>
于 2013-01-10T15:10:07.140 に答える
8

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

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

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

以前は QtGui をインクルードするだけで十分でしたが、QT5 はウィジェットを複数の .h ファイルに分割するため、それらをインクルードする必要があります。たとえば、QtMenuBar は QtMenu.h に含まれていましたが、現在は QtMenuBar.h を #include する必要があります

于 2013-05-06T10:03:29.217 に答える