我刚刚将我的项目从Qt4移到了Qt5,我的包含问题。
对于Qt4,我使用了这些行:
#include <QtGui\QtGui>
#include <QtCore\QtCore>
但这对Qt5不起作用,我不知道应该使用什么。在QtCreator的示例中,我可以使用QtWidgets看到它们,但我使用的是MS Visual Studio,其中包含的工作方式略有不同。
答案 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>
。 1}}前缀格式永远不是必需的。
由于小部件在Qt 5中移出了gui模块,你需要在Qt 5中简单地<QtModule/QClass>
。或者,如果你想同时支持Qt 4和Qt 5:
#include <QtWidgets>