Qt要包含哪些标题?

10 c++ qt include

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

#include <QtCore>
#include <QtGui>
Run Code Online (Sandbox Code Playgroud)

要么

#include <QWidget>
#include <QDialog>
#include <QList>
#include <QKeyEvent>
#include <QObject>
Run Code Online (Sandbox Code Playgroud)

每个班级?

谢谢!

dab*_*aid 11

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

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

  • 都是真的!另一个考虑因素是,在头文件中尽可能使用前向声明. (3认同)
  • 这个答案是错误的(部分正确),因为它没有考虑"预编译标题"功能,后者将缺点变为专业人士.我说如果你只使用通用的Qt包含,而没有单独的包含,你将获得合适的编译速度和最小的二进制大小.这假设你有现代编译器,原因是优化.手工采摘包括90秒的东西.让机器照顾明显的东西,它比人类更好. (3认同)

Mar*_*rio 5

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

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