跳至主要內容

QT

LincZero大约 1 分钟

QT

目录

网页展示

参考:

三种方法

应用场景和版本兼容

首先先说说QtWebkit、QtWebEngine、QAxWidget三种方式显示网页的应用场景

  • QtWebkit:在Qt5.6以前,都是使用QtWebkit组件。但Qt5.6以后,移除了QtWebkit这个组件
  • QtWebEngine:Qt5.6以后的MSVC版本,引进了基于Chromium的浏览器引擎 QtWebEngine
  • QAxWidget:Qt5.6以后的mingw版本,由于移除了QtWebkit,mingw版本不能使用QtWebEngine,因此只能使用QAxWidget控件

兼容性代码

参考:https://www.zhihu.com/question/459653716

错误

Qt6找不到WebEngine

QT += WebEngineWidgets

报错:ERROR: Unknown module(s) in QT: webenginewidgets

是因为在安装管理器中的层次不同

Qt5.15的Qt WebEngine在根,而Qt6.0、Qt6.1都没有,而Qt6.2的Qt WebEngine库在Additional Libraries下面

要另外安装

QtWebEngine

由 Qt WebEngine Widgets、Qt WebEngine、Qt WebEngine Process 三部分组成

QtWebEngineWidget(废弃)

在5.6.0版本以后就弃用了,新版本是使用"QWebEngineView"

QWebEngineView

报错

情形:我在插件中使用WebEngine 他知道我在插件中用WebEngin,就报错让我在构造QGuiApplication之前,使用QCoreApplication::setAttribute设置Qt::AA_ShareOpenGLContexts。

报错

Qt WebEngine seems to be initialized from a plugin.
Please set Qt::AA_ShareOpenGLContexts using QCoreApplication::setAttribute before constructing QGuiApplication. 

解决:加上

QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);