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

news/2025/3/11 12:44:19/

一.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编译器上运行。


http://www.ppmy.cn/news/1578345.html

相关文章

DeepSeek-进阶版部署(Linux+GPU)

前面几个小节讲解的Win和Linux部署DeepSeek的比较简单的方法&#xff0c;而且采用的模型也是最小的&#xff0c;作为测试体验使用是没问题的。如果要在生产环境使用还是需要用到GPU来实现&#xff0c;下面我将以有一台带上GPU显卡的Linux机器来部署DeepSeek。这里还只是先体验单…

php中JSON或数组到formData的键值对转换

在开发web应用时&#xff0c;经常需要将数据以AJAX的方式提交到服务器。通常这些数据以JSON格式或数组形式出现&#xff0c;而服务器端期望的却是 application/x-www-form-urlencoded或 multipart/form-data格式&#xff0c;即formData。在PHP中&#xff0c;将JSON或数组转换为…

django下防御race condition漏洞(竞争型漏洞)

目录 竞争型漏洞 概念 常见类型及示例 环境搭建 ​编辑漏洞复现 ucenter/1/ ucenter/2/ ucenter/3/ ucenter/4/ 总结 悲观锁 乐观锁 竞争型漏洞 概念 竞争型漏洞&#xff0c;也称为竞态条件漏洞&#xff08;Race Condition Vulnerability&#xff09;&#xff0c;…

vue3中接收props的两种写法

在 Vue 3 中&#xff0c;接收 props 有两种主要的写法&#xff0c;分别是运行时声明和基于类型的声明。下面为你详细介绍这两种写法。 1. 运行时声明 运行时声明是 Vue 2 中就已经存在的方式&#xff0c;在 Vue 3 中依然可以使用。这种方式通过在组件中使用 defineProps 宏来…

VSCode离线安装Verilog插件教程

本章教程&#xff0c;主要介绍如何在vscode中离线安装Verilog插件。 插件名称&#xff1a;Verilog-HDL/SystemVerilog/Bluespec SystemVerilog 一、下载插件 下载地址&#xff1a;https://open-vsx.org/extension/mshr-h/veriloghdl 二、离线安装 vscode离线安装步骤如下&#…

电力行业中分布式能源管理(Distributed Energy Management System, DEMS)的实现

以下是电力行业中分布式能源管理(Distributed Energy Management System, DEMS)的实现方案,涵盖系统架构、关键技术、核心功能及实施路径,结合典型场景与代码示例: 一、系统架构设计 采用云-边-端三层架构,实现分布式能源的高效协同管理: 1. 终端层(感知层) 设备组…

Android Fragment生命周期与Activity生命周期关系原理分析

一、整体概述 在 Android 开发中&#xff0c;Fragment 和 Activity 是构建用户界面的关键组件。Activity 作为应用的重要交互载体&#xff0c;管理着应用的整体界面和生命周期&#xff1b;而 Fragment 则是轻量级的 Activity&#xff0c;可嵌入到 Activity 中&#xff0c;实现…

Windows 系统下安装 RabbitMQ 的详细指南

Windows 系统下安装 RabbitMQ 的详细指南 Windows 系统下安装 RabbitMQ 的详细指南1. 前言2. 安装前的准备3. 安装步骤3.1 下载并安装 Erlang3.2 下载并安装 RabbitMQ3.3 配置环境变量3.4 验证安装3.5 启用 RabbitMQ 管理插件 4. 常见问题解决4.1 RabbitMQ 服务无法启动4.2 无法…