Qt5包含哪些内容?

时间:2017-05-19 12:40:45

标签: visual-studio qt include qt5

我刚刚将我的项目从Qt4移到了Qt5,我的包含问题。

对于Qt4,我使用了这些行:

#include <QtGui\QtGui>
#include <QtCore\QtCore>

但这对Qt5不起作用,我不知道应该使用什么。在QtCreator的示例中,我可以使用QtWidgets看到它们,但我使用的是MS Visual Studio,其中包含的工作方式略有不同。

2 个答案:

答案 0 :(得分:1)

1)不建议为模块包含那些标题,最好只包含您需要的标题(并且尽可能使用正向声明而不是包含)。包括模块头会增加编译速度(可能会很多,取决于你的项目有多大)。

2)您不应该在include中使用路径,而不是#include<QtWidgets/QLabel>您可以使用#include <QLabel>,如果Qt已正确安装,它应该可以使用。

3)QtWidgets是Qt5中的一个模块,它包含Qt4中的gui模块中的C ++ ui元素(QLabel等)(gui module现在只包含一些关于窗口系统,事件的基础知识,opengl,图像等),所以如果你在C ++中创建ui,你需要链接QtWidgets模块,在你的.pro文件中添加QT += widgets(如果你使用Qt Creator)或者在你的模块选项卡中选择它。 Qt项目设置(如果您使用VS ide)。

您可以在documentation中看到有关模块的更多信息。

答案 1 :(得分:1)

您永远不需要使用这些包含。如果您要包含整个QtGui模块,则该模块已包含它所依赖的QtCore,而在Qt 4或Qt 5中,您需要#include <QtGui>

由于小部件在Qt 5中移出了gui模块,你需要在Qt 5中简单地<QtModule/QClass>。或者,如果你想同时支持Qt 4和Qt 5:

#include <QtWidgets>