12

我刚刚安装了基于 Qt 5.0 的 Qt Creator 2.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 的主要内部基础结构变化之一是将小部件从 QtGui 模块拆分为新的 QtWidgets 模块。这显然至少需要更改构建系统,但也导致下游需要为以前不需要的标头添加包含,因为这些包含已从现在保留在 QtGui 模块中的标头中删除。

从 Qt 4 移植到 Qt 5 的另一个与包含相关的问题是处理已移动到 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

我有这个问题,做了两个改变

  1. echo "QT += 小部件" >> /fileProject.pro

  2. 在包含 QDialog 声明的文件中添加#include QDialog

以前包含 QtGui 就足够了,但 QT5 将小部件拆分为更多的 .h 文件,因此有必要包含它们。例如 QtMenuBar 被包含在 QtMenu.h 但现在它需要 QtMenuBar.h 是#included

于 2013-05-06T10:03:29.217 回答