#include QtWebKit (Qt4) 或 QtWebKitWidgets (Qt<5.6) 或 QtWebEngineWidgets (Qt>=5.6)
#include QtWebKit (Qt4) or QtWebKitWidgets (Qt<5.6) or QtWebEngineWidgets (Qt>=5.6)
我正在处理的项目可能是在 Q4/5/5.6 环境中开发的,考虑到 Qt 与 web kit 相关的更改(用于显示 google 地图,这造成了一些困难javascript界面)。
我通过以下方式在项目文件中加载了正确的模块:
greaterThan(QT_MAJOR_VERSION, 4) {
greaterThan(QT_MINOR_VERSION, 5) {
message("Qt5.6")
QT += widgets webenginewidgets #include <QtWebEngineWidgets> for Qt5.6 in map.cpp
} else {
message("Qt5")
QT += widgets webkitwidgets #include <QtWebKitWidgets> for Qt5 in map.cpp
}
} else {
message("Qt4")
QT += webkit #include <QtWebKit> for Qt4 in map.cpp
}
问题是每个模块都有不同的#include
:
#include QtWebKit // for Qt4
#include QtWebKitWidgets // for Qt5 lower then 5.6
#include QtWebEngineWidgets // for Qt5.6
是否可以使代码可移植,以便它可以发现应该执行哪个 #include
?
你可以使用像
这样的东西
#include <QtGlobal>
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
#include <QtWebEngineWidgets>
#elif (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <QtWebKitWidgets>
#else
...
#endif
我正在处理的项目可能是在 Q4/5/5.6 环境中开发的,考虑到 Qt 与 web kit 相关的更改(用于显示 google 地图,这造成了一些困难javascript界面)。
我通过以下方式在项目文件中加载了正确的模块:
greaterThan(QT_MAJOR_VERSION, 4) {
greaterThan(QT_MINOR_VERSION, 5) {
message("Qt5.6")
QT += widgets webenginewidgets #include <QtWebEngineWidgets> for Qt5.6 in map.cpp
} else {
message("Qt5")
QT += widgets webkitwidgets #include <QtWebKitWidgets> for Qt5 in map.cpp
}
} else {
message("Qt4")
QT += webkit #include <QtWebKit> for Qt4 in map.cpp
}
问题是每个模块都有不同的#include
:
#include QtWebKit // for Qt4
#include QtWebKitWidgets // for Qt5 lower then 5.6
#include QtWebEngineWidgets // for Qt5.6
是否可以使代码可移植,以便它可以发现应该执行哪个 #include
?
你可以使用像
这样的东西#include <QtGlobal>
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
#include <QtWebEngineWidgets>
#elif (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include <QtWebKitWidgets>
#else
...
#endif