首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#包括QtWebKit (Qt4)、QtWebKitWidgets (Qt<5.6)或QtWebEngineWidgets (Qt>=5.6)

#包括QtWebKit (Qt4)、QtWebKitWidgets (Qt<5.6)或QtWebEngineWidgets (Qt>=5.6)
EN

Stack Overflow用户
提问于 2016-05-19 16:25:19
回答 1查看 757关注 0票数 1

我正在开发的项目可能是在Q4/5/5.6的环境中开发的,考虑到Qt与web相关的更改(用于通过javascript接口显示google地图),这造成了一些困难。

通过以下操作,我成功地在项目文件中laod了正确的模块:

代码语言: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

代码语言:javascript
复制
#include QtWebKit           // for Qt4
#include QtWebKitWidgets    // for Qt5 lower then 5.6
#include QtWebEngineWidgets // for Qt5.6

是否有可能使代码可移植,以便能够发现应该执行哪个#include

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-19 18:10:00

你可以用这样的方法

代码语言:javascript
复制
#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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37329024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档