一位开发人员使用QtWidgets向我们的软件添加了一个特性,据我所知,这是一个QT5特性。问题是,我们的软件仍然是为QT4设计的,我们还不能使用最新的QT版本。这个新特性在QT5中编译时效果很好,但是当试图使用QT4.8.5编译时会出现以下错误。
src\qt\snapwidget.h:3: error: QtWidgets: No such file or directory
#include <QtWidgets>
^是否有关于将QtWidgets移植到较旧版本的QT的文档?也许有人在将小部件作为一个本地特性引入之前就已经在做一些类似的事情了。
发布于 2014-06-02 21:01:51
小部件不是Qt5特性。他们从第一天起就在Qt里了。
一般来说,我建议不要使用这样的每个模块包括。它们将为给定模块添加所有包含,大大提高了您的编译时间。相反,您可以使用
#include <QClass>这也同样有效,只需要对我下面提到的.pro文件进行调整(一个地方,而不是修改所有源文件)。
您的问题是Qt 4中没有"QtWidgets“模块,Qt 4中的小部件位于"gui”模块中。
因此,Qt 4中的“等效”行是
#include <QtGui>您可以使用QT_VERSION使您的C++代码在Qt 4和5中都能工作:
#include <QtGlobal>
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
# include <QtWidgets>
#else
# include <QtGui>
#endif在.pro文件中添加一个类似的逻辑,用于针对widgets模块进行链接。默认情况下,Qt4和Qt5都只链接到core和gui模块,但正如我刚才所说的,这不会在Qt 5中为您带来小部件:
greaterThan(QT_MAJOR_VERSION, 4):QT += widgetshttps://stackoverflow.com/questions/23979798
复制相似问题