QT显示网页控件QAxWidget、QWebEngineView及区别

一.QT种显示网页控件QAxWidget

1.介绍

QAxWidget 属于 QtAxContainer 模块,ActiveX 是微软提出的一种组件对象模型(COM)技术,允许不同的软件组件在 Windows 操作系统上进行交互和集成。QAxWidget 为开发者提供了在 Qt 应用程序中使用 ActiveX 控件的能力,

通过它可以将各种 ActiveX 控件嵌入到应用程序界面中。

2.使用

引入必要的模块

在 .pro 文件中添加 QT += axcontainer 以包含 QAxWidget 所需的库。

包含头文件

在代码中包含 QAxWidget 的头文件:

#include <QAxWidget>

创建 QAxWidget 对象,指定要嵌入的 ActiveX 控件的标识符,将其添加到布局中显示,并进行相应的交互操作:

cpp

#include <QApplication>

#include <QAxWidget>

#include <QVBoxLayout>

#include <QWidget>

int main(int argc, char *argv\[\])

{

QApplication a(argc, argv);

QWidget window;

QVBoxLayout *layout = new QVBoxLayout(&window);

QAxWidget *axWidget = new QAxWidget("SomeActiveXControl.OCX", &window);

layout->addWidget(axWidget);

window.show();

return a.exec();

}

二.QT种显示网页控件QWebEngineView

1.介绍

QWebEngineView 属于 QWebEngineWidgets 模块,该模块为开发者提供了在 Qt 应用程序中集成 Web 浏览器功能的能力。QWebEngineView 以可视化控件的形式存在,能够在应用程序界面中显示网页内容,支持 HTML、CSS、JavaScript 等多种 Web 技术。

2.使用

引入必要的模块

在 .pro 文件中添加 QT += webenginewidgets 以包含 QWebEngineView 所需的库。

包含头文件

在代码中包含 QWebEngineView 的头文件:

#include <QWebEngineView>

创建 QWebEngineView 对象,并将其添加到布局中显示,同时加载网页:

cpp

#include <QApplication>

#include <QWebEngineView>

#include <QVBoxLayout>

#include <QWidget>

int main(int argc, char *argv\[\])

{

QApplication a(argc, argv);

QWidget window;

QVBoxLayout *layout = new QVBoxLayout(&window);

QWebEngineView *view = new QWebEngineView(&window);

layout->addWidget(view);

view->load(QUrl("https://www.example.com"));

window.show();

return a.exec();

}

三.QAxWidget与QWebEngineView区别

1.功能特点

QAxWidget

功能多样性:由于 ActiveX 控件的种类繁多,QAxWidget 可以嵌入各种类型的 ActiveX 控件,如 Office 组件(Word、Excel 等)、多媒体播放器、绘图工具等,为应用程序扩展丰富的功能。

Windows 平台依赖:ActiveX 技术是微软 Windows 平台特有的,所以 QAxWidget 主要用于 Windows 平台,在其他操作系统上无法直接使用。

QWebEngineView

Web 内容支持:专注于显示和交互 Web 内容,能准确渲染各种复杂的网页布局和样式,支持 HTML5、CSS3、JavaScript 等现代 Web 标准,提供与主流浏览器相似的浏览体验。

跨平台支持:基于 Chromium 引擎,QWebEngineView 可以在多种操作系统上使用,如 Windows、Mac OS、Linux 等,具有良好的跨平台兼容性。

2.编译器支持

(1)webenginewidgets

windows下依赖于 Chromium 内核,而 Chromium 内核在 Windows 平台上主要是使用 Visual Studio 进行编译的。为了保持兼容性和稳定性,Qt 在 Windows 下提供webenginewidgets模块时,通常要求使用 MSVC 编译器。使用 MinGW 等其他编译器可能会出现兼容性问题,导致该模块无法正常使用。

非 Windows 系统:在 Linux 和 macOS 等系统上,webenginewidgets模块并不强制要求使用 MSVC 编译器。因为在这些平台上,Chromium 内核可以使用 GCC 或 Clang 等编译器进行编译,Qt 的webenginewidgets模块也相应地可以使用这些平台上的标准编译器来构建。

(2)QAxWidget可以在windows下的MinGW编译器上运行。

相关推荐
用户805533698036 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner6 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz11 天前
QML Hello World 入门示例
qt
xcyxiner14 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner14 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner15 天前
DicomViewer (添加模型类)3
qt
xcyxiner15 天前
DicomViewer (目录调整) 2
qt
xcyxiner15 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00617 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术17 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript