1

我使用 BlueGo 为 msvc2012 构建了一个自定义 Qt5。

我正在阅读示例,它们显示了这一点:

#include <QtGui>

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QWidget window;
     window.resize(320, 240);
     window.show();
     window.setWindowTitle(
         QApplication::translate("toplevel", "Top-level widget"));
     return app.exec();
 }

问题是,QtGui 对我来说实际上是一个目录而不是一个文件,所以它不能被包含在内。我正在使用 /qtbase/include/ 下的包含文件。难道我做错了什么?

4

2 回答 2

2

QtGui 头文件实际上是存在的,它只是包含了来自 QtGui 模块的所有头文件。您可以在 QtGui 目录中找到。编译器能够找到它,因为在包含路径中指定了 QtGui 目录。换句话说,它与以下内容相同:

#include <QtGui/QtGui>

不过,包含 QtGui 标头是一种糟糕的做法。您应该只包含您实际使用的内容,否则编译时间将无缘无故地增加。但是,对于快速测试等,它非常方便。

于 2012-12-25T12:55:22.120 回答
0

我知道现在有点晚了,但你可以这样做:

添加gui模块并widgets在 pro 文件中:

QT += widgets core  gui

通过替换包含文件,

代替

#include <QtGui/QWidget>
#include <QtGui/QApplication>

#include <QWidget>
#include <QApplication>

编译器应该识别它。

于 2020-09-14T12:58:35.527 回答