Qt4和Qt5上的QWebView

use*_*826 6 qt qt4 qwebview qt5

我有个问题.我需要在qt4上编译qt5代码.当我编译它时我有这样的错误(在qt5我没有它):

QWebView: No Such File Or Directory
Run Code Online (Sandbox Code Playgroud)

这是我的.pro文件:

QT       += core gui xml webkitwidgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = TPDetector
TEMPLATE = app


SOURCES += \
    main.cpp \
    mainwindow.cpp \
    VKAuth.cpp

HEADERS += \
    mainwindow.h \
    VKAuth.h
Run Code Online (Sandbox Code Playgroud)

我如何在qt4上构建我的项目?

Fra*_*tha 10

我必须添加libqtwebkit-dev我的应用程序包以进行编译.


Aki*_*Aki 8

使用QT5的新webkit发布具有新结构.QWebView,QWebpage等现在是QtWebKitWidgets的一部分.

因此,在您的代码中,您需要包含这样的webview:

  #include <QtWebKitWidgets/QWebView>
Run Code Online (Sandbox Code Playgroud)

在你的.pro文件中你需要添加:

   QT += webkitwidgets
Run Code Online (Sandbox Code Playgroud)

如果你真的想让你的代码向前/向后兼容; 我只需要检查QT5:

   QT+= core gui webkit

   contains(QT_VERSION, ^5.*) {
       QT += webkitwidgets
   } 
   ...
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中:

  #if (QT_VERSION < 0x050000)
  #include <QWebView>
  #else 
  #include <QtWebKitWidgets/QWebView>
  #endif
Run Code Online (Sandbox Code Playgroud)