IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> QtWebEngine Widget各部分详述 -> 正文阅读

[JavaScript知识库]QtWebEngine Widget各部分详述

QtWebEngine

一、架构

1.1 模块

Qt WebEngine中的功能分为以下模块:

模块功能
Qt WebEngine Widgets C++ Classes提供用于在基于 QWidget 的应用程序中呈现 Web 内容的C++类。
Qt WebEngine QML Types提供 QML 类型,用于在 QML 应用程序中呈现 Web 内容。
Qt WebEngine Widgets C++ Classes提供用于在基于 QWidget 的应用程序中呈现 Web 内容的C++类。

1.2 小组件

这里记录的是Qt WebEngine Widgets C++ Classes
这是官方的一个自上而下的架构图片
在这里插入图片描述
所有页面都属于包含共享设置、脚本和 Cookie 的 Web 引擎配置文件。

1.3 类概述

功能
QtWebEngineView提供了一个用于查看和编辑 Web 文档的小部件
QWebEnginePageQWebEnginePage
QWebEngineHistory表示 Web 引擎页历史记录
QWebEngineHistoryItem表示 Web 引擎页历史记录中的一个项目
QWebEngineProfile由多个页面共享的 Web 引擎配置文件
QWebEngineSettings用于存储 QWebEnginePage 使用的设置的对象
QWebEngineScript封装一个 JavaScript 程序
QWebEngineCertificateError有关证书错误的信息
QWebEngineClientCertificateSelection客户端证书选择
QWebEngineClientCertSelection类包装客户端证书选择
QWebEngineContextMenuData用于使用操作填充或扩展上下文菜单的上下文数据
QWebEngineDownloadItem有关下载的信息
QWebEngineFullScreenRequest允许接受或拒绝进入和退出全屏模式的请求
QWebEngineScriptCollection表示用户脚本的集合

二、类

2.1 QWebEngineView

2.1.1 例

此类用于基础的显示页面
一个常见的加载页面的例子:

QWebEngineView *view = new QWebEngineView(parent);
view->load(QUrl("https://www.csdn.net/"));
view->show();

运行后即显示加载的页面
在这里插入图片描述

2.1.2 常用函数

*①QMenu QWebEngineView::createStandardContextMenu ()
创建标准上下文菜单并返回指向该菜单的指针。

②[virtual protected] QWebEngineView QWebEngineView::createWindow ( QWebEnginePage::WebWindowType type )*
当从QWebEnginePage 中希望创建新窗口时根据Page类返回的类型调用该函数 。
在使用QWebEngineView 加载一个页面时,我们会发现点击页面上的超链接不起作用,此时我们可以重写createWindow函数来使其跳转:

QWebEngineView* QWebEngineViewChw::createWindow(QWebEnginePage::WebWindowType type)
{
    //加载链接地址
    if (!m_url.isEmpty())
    {
        this->load(m_url);
        emit QEvent::ChildPolished;//重新加载页面时,手动触发一个ChildPolished事件
    }
    return nullptr;
}

更细致一些,我们需要根据type的类型来操作

    switch (type) {
    case QWebEnginePage::WebBrowserTab: {
      //TODO
    }
    case QWebEnginePage::WebBrowserBackgroundTab: {
       //TODO  
    }
    case QWebEnginePage::WebBrowserWindow: {
       //TODO
    }
    case QWebEnginePage::WebDialog: {
      //TODO  
    }

③void QWebEngineView:: findText (const QString & subString , QWebEnginePage::FindFlags options = {}, const std::function < void (const QWebEngineFindTextResult &)> & resultCallback = …)
查找指定字符串。要清除选定,只需传递空字符串。
可用于实现按下“Ctrl+F”来查找输入的字符串

*④[static, since 6.2] QWebEngineView QWebEngineView:: forPage (const QWebEnginePage * page )
返回与page有关联的视图

该函数在 Qt 6.2 引入。
*⑤QWebEngineHistory QWebEngineView:: history () const
返回指向导航网页的视图历史的指针。

相当于:

view->page()->history();

⑥void QWebEngineView:: load (const QUrl & url )
加载指定 url 并显示它。

注意:直到达成足够数据才显示新 URL。在使用时可能会遇页面一直白屏,等待一段时间后突然加载出来的现象。
使用该函数可以直接加载指定的url,通常会配合UrlChange()信号使用。鼠标点击超链接->发送UrlChange信号->槽函数调用load加载UrlChange()传递的Url。

⑦[since 5.9] void QWebEngineView:: load (const QWebEngineHttpRequest & request )
发出指定 request 并加载响应。

该函数在 Qt 5.9 引入。
⑧QUrl Url()const
返回当前加载的url
⑨void setUrl (const QUrl & url )
加载 URL。
*⑩QWebEnginePage QWebEngineView:: page () const
返回指向底层 Web 页面的指针。
*⑩① QAction QWebEngineView:: pageAction ( QWebEnginePage::WebAction action ) const
返回指针指向 QAction 封装指定的 Web 动作 action .
⑩②[since 6.2] void QWebEngineView:: print ( QPrinter * printer )
将页面的当前内容呈现为临时 PDF 文档,然后使用打印机 进行打印。
用于创建和打印PDF文档的设置将从打印机 对象中检索。
完成后将发送printFinished ()信号 ,成功或失败将返回:true/falsex需要保证在发送rintFinished () 前打印机都是可用的。
注意: 打印在浏览器进程上运行,默认情况下,该进程未进行沙盒处理。
注意: 此函数渲染到打印机时有栅格化的效果,请将打印机的默认分辨率提高到至少 300 DPI 或使用 printToPdf () 更有效地生成 PDF 文件输出。
该函数在 Qt 6.2 引入。
⑩③[since 6.2] void QWebEngineView:: printToPdf (const QString & filePath , const QPageLayout & layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges & ranges = {})
将页面的当前内容呈现为 PDF 文档,并将其保存在 filePath 中指定的位置。生成的PDF文档的页面大小和方向取自布局 中指定的值,而打印的页面范围取自范围,默认为打印所有页面。
此方法发出将网页打印为 PDF 的异步请求,并立即返回。要获得有关请求结果的通知,请连接到信号 pdf打印已完成 ()。
如果提供的文件路径中已存在某个文件,则该文件将被覆盖。
该函数在 Qt 6.2 引入。
⑩④[since 6.2] void QWebEngineView::printToPdf (const std::function < void (const QByteArray &)> & resultCallback , const QPageLayout & layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges & ranges = {})
将页面的当前内容呈现为 PDF 文档,并返回一个包含 PDF 数据的字节数组作为 resultCallback 的参数。生成的PDF文档的页面大小和方向取自布局 中指定的值,而打印的页面范围取自范围,默认为打印所有页面。
resultCallback 必须将对 QByteArray 的 const 引用作为参数。如果打印成功,则此字节数组将包含 PDF 数据,否则,该字节数组将为空。
警告: 我们保证回调 ( resultCallback ) 总是被调用,但它可能在页面销毁期间完成。当 QWebEnginePage 被删除,会采用无效值触发回调
该函数在 Qt 6.2 引入
⑩⑤void QWebEngineView:: setContent (const QByteArray & data , const QString & mimeType = QString(), const QUrl & baseUrl = QUrl())
把 Web 视图内容设为 data 。若 mimeType 自变量为空,默认内容为 . text/plain,charset=US-ASCII
内容中引用的外部对象的定位相对于 baseUrl 。对于要加载外部对象, 不可以为空。 baseUrl
数据被立即加载;外部对象被异步加载。
⑩⑥void QWebEngineView:: setHtml (const QString & html , const QUrl & baseUrl = QUrl())
将 Web 视图内容设为指定 html 内容。
外部对象 (譬如:HTML 文档引用的样式表或图像) 的定位相对于 baseUrl 。对于要加载外部对象, 不可以为空。例如,若 html 检索自 ,其是基 URL,然后相对 URL 引用图像, 例如 : baseUrl http://www.example.com/documents/overview.html diagram.png http://www.example.com/documents/diagram.png
HTML 文档立即加载,而外部对象异步加载。
当使用此方法时,Qt WebEngine 假定外部资源 (譬如 JavaScript 程序或样式表) 是以 UTF-8 编码的,除非另有指定。例如,可以指定外部脚本的编码透过 属性在 HTML 脚本标签。另外,可以通过 Web 服务器指定编码。 charset
此方便函数相当于 . setContent(html, "text/html;charset=UTF-8", baseUrl)
警告: 此函数只适用于 HTML。对于其它 MIME 类型 (譬如 XHTML 或 SVG), setContent () 应该使用以取而代之。
注意: 大于 2 MB 的内容无法显示,因为 setHtml() 将转换提供的 HTML 为百分比编码并放置 :在它之前创建导航 URL。由此,提供的代码变为超过 Chromium 设置的 2 MB 限制的 URL。若内容太大, loadFinished () 信号被触发采用 . data success=false

To Be Continue……

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:34:53  更:2022-04-07 22:38:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:04:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码