Qt实现简单的显示网页(QtWebkit、QtWebEngine、QAxWidget)

2023-11-13

首先先说说QtWebkit、QtWebEngine、QAxWidget三种方式显示网页的应用场景
QtWebkit:在Qt5.6以前,都是使用QtWebkit组件,但Qt5.6以后,移除了QtWebkit这个组件
QtWebEngine:Qt5.6以后的MSVC版本,引进了基于Chromium的浏览器引擎 QtWebEngine
QAxWidget:Qt5.6以后的mingw版本,由于移除了QtWebkit,mingw版本不能使用QtWebEngine,因此只能使用QAxWidget控件

QtWebkit

QtWebKit提供一个Web浏览器引擎,可以轻松地将来自万维网的内容嵌入到Qt应用程序中。同时,可以使用本机控件增强Web内容。
QtWebKit提供用于呈现超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)和可伸缩矢量图形(SVG)文档的工具,这些文档使用级联样式表(CSS)样式,并使用JavaScript编写脚本。
JavaScript执行环境与Qt对象模型之间的桥梁使定制成为可能QObjects写剧本。有关详细文档,请参阅QtWebkit桥,通过与Qt网络模块的集成,可以透明地从Web服务器、本地文件系统甚至Qt资源系统加载Web页面。
除了提供纯呈现功能之外,还可以通过使用contenteditable属性设置在HTML元素上。
QtWebKit已经得到了增强,在移动领域也变得更有吸引力。有关更多信息,请参见QtWebKit Go Mobile.
QtWebKit是基于开放源码WebKit引擎。更多关于WebKit本身可以在WebKit开源项目网站。
关于交互部分需要与JavaScript联合使用,下面只简单的介绍如何显示网页。

QWebView view;
view.load(QUrl(https://blog.csdn.net/qq_36651243));
view.show();

更多QtWebkit资料

QtWebEngine

QtWebEngine模块提供了一个Web浏览器引擎,可以方便地在没有本地Web引擎的平台上将来自万维网的内容嵌入到Qt应用程序中。
QtWebEngine提供C+类和QML类型,用于呈现HTML、XHTML和SVG文档,样式为级联样式表(CSS),并使用JavaScript编写脚本。用户可以通过使用contenteditable属性设置在HTML元素上。

小编开发环境:Qt5.9.6+VS2015

QWebEngineView *LiveView = new QWebEngineView;
LiveView->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
LiveView->setAttribute(Qt::WA_DeleteOnClose);
LiveView->load(QUrl("https://blog.csdn.net/qq_36651243"));
//LiveView->setWindowFlags(Qt::FramelessWindowHint);   //去除边框
//LiveView->setAttribute(Qt::WA_TranslucentBackground, true); //透明
LiveView->resize(1024, 768);
LiveView->show();

更多QtWebEngine资料

QAxWidget

A QAxWidget可以使用它应该包装的ActiveX控件的名称,或者使用指向ActiveX控件的现有接口指针,将其实例化为空对象。ActiveX控件的属性、方法和事件,这些属性、方法和事件仅使用QAxBase受支持的数据类型,可作为Qt属性、槽和信号使用。基类QAxBase控件直接访问ActiveX的API。IUnknown指针。

小编开发环境:Qt5.9.6+VS2015
使用QAxWidget前需要注意两点:
1.QAxContainer.lib,QAxServer.lib库不可缺。
2.开发机本身具有相应的IE游览器(注册表文件一致)

QAxContainer.lib,QAxServer.lib引用方式:
在这里插入图片描述
关于注册表文件:
在这里插入图片描述

QAxWidget *flash = new QAxWidget(0, 0);      //QAxWidget使用的是ActiveX插件
flash->resize(600, 400);                    //设置该控件的初始大小
flash->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));//注册组件ID
flash->setProperty("DisplayAlerts", false);//不显示警告信息
flash->setProperty("DisplayScrollBars", true);//不显示滚动条
QString webstr = QString("www.baidu.com");//设置要打开的网页
flash->dynamicCall("Navigate(const QString&)", webstr);//显示网页
flash->show();

更多QAxWidget 资料

关于根据CEF封装QCef学习
QCef及CEF学习

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt实现简单的显示网页(QtWebkit、QtWebEngine、QAxWidget) 的相关文章

  • Qt中正确的线程方式

    我的图像加载非常耗时 图像很大 并且在加载时也完成了一些操作 我不想阻止应用程序 GUI 我的想法是在另一个线程中加载图像 发出图像已加载的信号 然后用该图像重绘视图 我的做法 void Window loadImage ImageLoad
  • 为什么总是在 mouseDoubleClickEvent 之前调用 mousePressEvent

    请考虑以下代码 include
  • QWidget::showMinimized() 不起作用

    在 Ubuntu 13 04 上 如果使用QWidget showMinimized 为了最小化窗口 我发现通过单击系统任务栏上的应用程序图标恢复它后 调用QWidget showMinimized 无法工作 connect minimum
  • 如何将枚举类传递给 QML?

    我正在学习QML with Qt并在通过时遇到一些麻烦enum class to qml 当我使用信号时int参数 一切正常 代码运行完美 But 麻烦就在这里 如果我使用信号与一些enum class我有参数undefinedqml 信号
  • 如何在 Qt-Creator 中添加自定义构建步骤?

    构建我的应用程序后 我想将其复制到特定目录 在 Windows 7 上 自定义构建步骤 cmd exe c k copy MyPlugin dll HostApp Debug plugins 但我有错误 Can t run process
  • Woocommerce:添加第二个电子邮件地址不起作用,除非收件人是管理员

    我尝试了多种方法来向 Woocommerce 电子邮件添加其他收件人 但它似乎仅适用于主要收件人是管理员的测试订单 这些是我尝试过的片段 如果订单的客户是管理员 则电子邮件将发送到这两个地址 如果订单包含客户电子邮件地址 则仅发送至该电子邮
  • 将 C++ 代码(本机客户端)移植到浏览器(Web 应用程序)

    我有一个使用 Qt creator SDK 编写的 C 模块 我想将此代码移植到任何网页上运行 而不会对最终用户损害源代码 用户应该能够在任何浏览器 Chrome Firefox Safari Explorer 上看到此模块的输出 而无需安
  • 如何在不同的QT线程中创建一个窗口?

    我有一个应用程序 其中每个线程 主线程除外 都需要创建自己的窗口 我尝试创建一个线程然后调用this gt exec in the run功能 然而 在我接到那个电话之前我就收到了一个错误 ASSERT failure in QWidget
  • Android 版 Qt 和 BoringSSL

    我正在开发一个基于 Qt 的 Android 应用程序 它使用 QSslSocket 下载数据 由于 Android 从 OpenSSL 转向 BoringSSL 因为依赖 OpenSSL 库的 Marshmallow Qt 程序在 And
  • 为什么anchors.centerIn不适用于Column元素?

    我有这段 QML 代码 Column spacing units gu 2 anchors fill parent centerIn parent Row spacing units gu 4 Row spacing units gu 4
  • 运行最新版本时没有“最新”消息?

    我正在尝试使用Sparkle https sparkle project org与 Qt Go 的绑定 https github com therecipe qt app 闪光 m import
  • qt 如何知道按钮被点击?

    我正在尝试编写一个程序 用声音进行一些操作 我的问题是我有 3 个播放按钮和 3 个标签 我希望无论我单击 播放 按钮 都应该播放按钮附近标签中名称的声音 我有一个没有任何参数的播放插槽 那么 如何分别连接到每个播放按钮和每个标签呢 实际上
  • MapItemView 在 dataChanged 信号后不会更新

    我正在使用 QMLMapItemView使用 C 的组件QAbstractListModel基于模型 这MapItemView当模型重置时 或者每当添加新项目或删除现有项目时 工作正常 但是 那MapItemView不反映对已添加项目的更改
  • Qmake 不支持源目录下的构建目录

    我创建了一个可以在 OS X 上编译和运行的应用程序 我现在想开始让它在 Windows 上运行 首先 我将项目复制到 Windows 机器上并尝试编译 但收到此错误 警告 Qmake不支持源目录下的构建目录 有任何想法吗 将影子构建目录设
  • 在 Windows 上静默安装 Qt55 Enterprise

    编辑 在 Qt 支持的帮助下 我已经解决了如何自动化 Qt 企业安装程序的这两个部分 下面是脚本调用 我正在尝试在 Windows 8 1 和 Windows 10 上静默安装 Qt 5 5 1 Enterprise 使用 script 开
  • PyQt:使用 alpha 通道创建 QPixmap,而不是预乘颜色通道

    我想创建一个 QPixmap 来使用 QPainter 进行绘制 QPixmap 应支持透明度 而不使用预乘颜色通道 目前 我通过创建具有所需尺寸的 QPixmap 并用每个通道 包括 alpha 设置为零的 QColor 填充它来实现此目
  • 使用样式表时的 QTabWidget tabPosition

    我目前正在使用样式表来设计应用程序的主题 这是我用于 QTabWidget 的样式表 QTabBar et QTabWidget QTabBar tab background qlineargradient spread pad x1 0
  • QGraphicsView 在完整布局中未最大化

    I have following GUI having four QGraphicView objects 正如您在每个视图下看到的那样 它有四个工具按钮 为了最大化视图 我连接了工具按钮的信号来隐藏其他三个视图的插槽 并将大小策略设置为扩
  • 如何阻止 Qt Creator 将可执行文件放置在“调试”子目录中?

    我正在 Qt Creator 中构建一个项目 虽然我不关心中间 obj 文件去哪里 但重要的是最终的可执行文件应放入 并运行 许多依赖项 DLL 等所在的特定目录中 被发现 因此 在 Qt Creator 中 我选择 Shadow Buil
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp

随机推荐

  • vscode——debugger

    提示 本文适用于vscode编译java代码调试初学者 文章目录 debugger图标介绍 左侧工具栏 调试代码 debugger图标介绍 在进行调试之前我们应先在代码前打断点 调试程序时 代码就会运行至断点位置然后停下 断点即为行数前小红
  • 一问解读OpenCV的计算机视觉中视频处理

    微信公众号 小白图像与视觉 关于技术 关注yysilence00 有问题或建议 请公众号留言 了解OpenCV的计算机视觉 OpenCV Python教程 在本OpenCV Python教程中 我们将介绍在Python中使用OpenCV进行
  • Linux 内核 MIPI LCD 驱动移植

    实验原理 DSI Display Serial Interface 是有 MIPI联盟定义的一组通信协议的一部分 MIPI DSI主机控制器是一个数字核心 实现 MIPI DSI 规范中定义的所有协议功能 它提供了系统和MIPI D PHY
  • Flutter Text 下面有两个默认的下划线,和设置划掉效果

    Text的decoration默认是TextDecoration none 不知道什么原因 有时候定义的Text下面会出现两个下划线 如下图 此时要去掉下面的下划线只需要在style下面的TextStyle增加属性decoration Te
  • CPU : 什么是双核处理器

    CPU 什么是双核处理器 双核处理器 Dual Core Processor 双核处理器是指在一个处理器上集成两个运算核心 从而提高计算能力 双核 的概念最早是由IBM HP Sun等支持RISC架构的高端服务器厂商提出的 主要运用于服务器
  • JavaDoc注释的使用跟导出JavaDoc文档

    1 Javadoc是什么 JavaDoc是Sun公司提供一种从程序源代码中抽取类 方法 成员等注释形成一个和源代码配套的API帮助文档技术 但是需要在编写程序时以一套特定的标签作注释 在程序编写完成 后 通过Javadoc就可以同时形成程序
  • Docker数据持久化

    v 持久化 三种 默认的 volumes 占用一部分宿主机的资源 最常用的方式 bind mounts 不同的数据结构不通不可移植 不能写在dockerfile中 比较常用 tmpfs 挂载到内存当中 一般都不会用 docker run i
  • 调研-笔记-基于生成对抗网络的恶意域名训练数据生成

    DGA 域名字符生成模型 域名字符分析 问题 理论上 GAN 中的生成器和判别器部分采用任意可微函数都能表示 因此其主要用于连续数据的处理 如图像生成 视频检测等 13 基于文本的离散数据处理一直是深度神经网络研究的难点之一 本文基于字符串
  • 有源低通滤波器设计

    本文主要记录本人最近项目使用的低通滤波器 对滤波器性能要求是 通频带内增益约11dB 对22HZ以上的频率尽可能滤除 特别是50HZ的工频信号 要求衰减到 50dB或更小 由于巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑 所以选择了巴特
  • WPF--关于控件输入数值验证

    1 XAML代码
  • 开发一个APP多少钱?

    开发一个APP多少钱 开发一个APP要多少钱 相信不光是客户有这个疑问 就算是一般的程序员也想知道答案 很多程序员想在业余时间接外包挣外快 但是他们常常不知道该如何定价 如何有说服力的要价 这是因为没有一套好的计算APP开发成本的方法 由于
  • 浅析ms17_010(永恒之蓝)漏洞利用过程及防护措施

    一 永恒之蓝 Wannacry 漏洞简介 1 一种 蠕虫式 的勒索病毒软件 利用windows的SMB漏洞传播 可以获取System最高权限 2 主要对windows服务器 主机有较大影响 黑客利用病毒对电脑重要文件进行加密 索要高比特币
  • 仓库管理系统c#语言代码,C#仓库管理系统+完整源代码

    Name MineFrame File MineFrame cs Description 此类用于仓库管理系统主界面的操作管理 Author XXX DateTime 2008年6月17日 using System using System
  • Node.js中设置时区的方法

    process env TZ Asia Shanghai 转载于 https www cnblogs com luluzero p 6339304 html
  • input选择保存的文件夹路径

    input添加这两个属性directory nwdirectory
  • stl_set

    begin 返回指向第一个元素的 迭代器 clear 清除所有元素 size 集合中元素的数目 count 返回某个值元素的个数 empty 如果集合为空 返回true 真 end 返回指向最后一个元素之后的迭代器 不是最后一个元素器 in
  • vue 省市区三级联动选择 pc端项目插件element-china-area-data(非常推荐)

    使用步骤 1 npm install element china area data S 2 import provinceAndCityData regionData provinceAndCityDataPlus regionDataP
  • 解决挂载ext4格式文件系统错误 JBD2: Unrecognised features on journal问题

    1 mount demo img mnt dmesg 报如下错误 1479130 280508 JBD2 Unrecognised features on journal 1479130 280512 EXT4 fs loop1 error
  • python 如果你的年龄大于18_python基础

    在python是空格是很重要的比如 如果在print前面加一个空格就会报错 在python中你必须顶格写 if 要判断的条件 条件成立时要执行的事情 图1 在图1中要判断的条件是年龄是不是大于18岁 大于18岁就可以去酒吧了 else语句配
  • Qt实现简单的显示网页(QtWebkit、QtWebEngine、QAxWidget)

    首先先说说QtWebkit QtWebEngine QAxWidget三种方式显示网页的应用场景 QtWebkit 在Qt5 6以前 都是使用QtWebkit组件 但Qt5 6以后 移除了QtWebkit这个组件 QtWebEngine Q