【问题标题】:#include QtWebKit (Qt4) or QtWebKitWidgets (Qt<5.6) or QtWebEngineWidgets (Qt>=5.6)#include QtWebKit (Qt4) 或 QtWebKitWidgets (Qt<5.6) 或 QtWebEngineWidgets (Qt>=5.6)
【发布时间】:2016-05-19 16:25:19
【问题描述】:

我正在进行的项目可能是在 Q4/5/5.6 的环境中开发的,考虑到 Qt 与 web kit 相关的更改(用于通过 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

【问题讨论】:

    标签: c++ qt qt5 c++14 qt5.6


    【解决方案1】:

    你可以使用类似的东西

    #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
    

    【讨论】:

      猜你喜欢
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      相关资源
      最近更新 更多