Qt要包含哪些标题?

时间:2011-05-25 14:30:21

标签: c++ qt include

用Qt编写C ++时我应该做什么?只有2包括

#include <QtCore>
#include <QtGui>

#include <QWidget>
#include <QDialog>
#include <QList>
#include <QKeyEvent>
#include <QObject>

每个班级?

谢谢!

4 个答案:

答案 0 :(得分:10)

只包括你需要的类的定义 - 其他任何东西不只是懒惰,它是非常浪费的,并且在我看来是糟糕的风格。

包括QtGui(其本身包括QtCore)将导致在您的编译中添加大约350(!)个头文件,在您的示例中您只需要6.编译将花费更长时间,并且当有人试图维护您的应用程序时浏览你的文件,他们无法从包含每个文件/类正在尝试做的内容中推断出来 - 他们必须阅读整个来源以获得一个想法。

答案 1 :(得分:5)

只需在课程中包含您需要的内容以加快编译速度。如果你是懒惰的人之一,并且无论编译需要多长时间,选择更通用的标题,但如果你正在寻找优化,请避免使用它们(编译器/链接器很可能会删除未使用的东西,但它仍然是最好不要先包括它。)

一般来说,如果我需要一些仍然缺失的东西(即尚未包括在内),我只会包含新内容。所以,只需点击编译。如果它遗漏了您忘记的内容,请添加标题。如果您不喜欢这种方法,请使用您提到的通用标题。

答案 2 :(得分:2)

如果您不想打扰包括每个单独的课程,那么请包含整个组件:

#include <QtCore>
#include <QtGui>

您需要使用的任何其他QT组件

#include <QtNetwork>

如果要显式指定依赖项,请包含每个单独的类

#include <QWidget>
#include <QDialog>
#include <QList>
#include <QKeyEvent>

以及您正在使用的其他QT课程。

答案 3 :(得分:0)

唯一的区别在于编译时间。如果您不使用预编译QtGuiQtCore标头,则编译时间会受到很大影响,您应该尽量避免这种情况。

相关问题