0、说明

QWebEngineView提供一个用于展示和编辑网页内容的Widget,QWebEngineView本质是一个Widget。

一个Web View通过load( QUrl )方法加载一个URLs对应的Site。

创建并加载Web Site之后,调用show()方法展示View。

以上三段就是在Qt Widget中加载一个Web View的基本过程,写成代码就是:

QWebEngineView * view = new QWebEngineView(parent);
view->load(QUrl("http://qt-project.org/"));
view->show();

此外,也可以用setUrl()方法可以用于加载Web Site,如果我们有一个HTML 内容,可以用setHtml()方法进行加载。

加载Web View时的一些信号

loadStarted()信号:View开始加载时发送;

loadProgress()信号:任意Web元素完成加载时发送;

loadFinished()信号:整个View都加载完成时发送。

属性与信号

page()方法返回一个指向QWebEnginePage的指针。一个QWebEngineView包含一个QWebEnginePage,它允许我们访问QWebEngineHistory,即网页的历史信息。

Web View的title属性通过title()访问。

一个Site会有一个icon,通过icon()访问,这个icon的URL通过iconUrl()访问。当title、icon改变时,相应的会发送titleChanged()、iconChanged()、iconUrlChanged()信号。

zoomFactor()返回一个zoomFactor属性,标志页面内容的缩放等级。

Widget中包含了一个文本菜单,提供了一些浏览器常用的action。如果要定制一个菜单,或者向原菜单、工具栏中添加一些额外的action,可以通过pageAction()构造。此外,这些action也可以通过triggerPageAction()直接触发。

如果我们想支持web site打开一个新的窗口,比如一个弹出窗口,我们可以自定义一个QWebEngineView子类并重写createWindow()方法。

案例

WebEngine Widgets Simple Browser Example,

WebEngine Content Manipulation Example

WebEngine Markdown Editor Example.

1、模块和加载项

Header #include<QWebEngineView>
qmake QT += webenginewidgets
Since Qt 5.4
Inherits QWidget

2、构造

QWebEngineView(QWidget *parent = Q_NULLPTR) 构造一个空QWebEngineView,它属于Parent Widget

3、属性

类型

属性

说明

相关方法

相关信号

bool hasSelection 是否选中了page中的元素 hasSelection()  
QIcon icon 现在显示的page的icon icon() iconChanged(QIcon icon)
QUrl iconUrl 该page关联的URL iconUrl() iconUrlChanged(QUrl url)
QString selectedText 现在选中的文本 selectedText()  
QString title HTML文档的中<title>元素的内容 title()  
QUrl url 该page关联的URL,重置该属性会导致页面重置

url()

setUrl(QUrl url)

 
qreal zoomFactor  缩放等级(范围[0.25 , 5.0]),默认1.0

zoomFactor()

setZoomFactor(qreal factor)

 

4、实例方法

以下只给出非getter、setter方法(这两种方法可以在第3节查找)

返回值类型

方法

说明

void findText(...)

查找指定的String、subString。

如果要清空Selection,只需要传递进一个空String即可。

resultCallback是bool类型,如果要找subString,其值就是true,否则就是false。

QWebEngineHistory * history() 返回一个指向历史的Page view的QWebEngineHistory指针
void load(QUrl url) 加载并展示指定的url
void load(QWebEngineHttpRequest & request) 发送指定的request,显示返回的response
QWebEnginePage * page() 返回一个指向page的指针
QAction * pageAction(WebAction action) 返回一个指向 操作当前page行为 的QAction的指针
void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()) 用参数data设置web view的内容
void setHtml(QString html , QUrl baseUrl = QUrl()) 用参数html设置该web view的内容
void setPage(QWebEnginePaege * page) 将参数page设置为该web view的新page
QWebEngineSettings * settings()  返回一个指向 view、page设置项的指针
void triggerPageAction(action , bool checked = false)

触发指定行为。

如果是可选行为,那么需要设置第二个参数。

5、信号

信号

说明

iconChanged( QIcon icon ) 当当前view的icon修改时发送该信号,参数中的icon是新icon
iconUrlChanged( QUrl url ) 当icon的URL修改时发送该信号,参数中的url是新URL
loadFinished( bool ok ) 当一个page①加载完成或者②发生错误时发送该信号
loadProgress( int progress ) 每有一个page元素(image或script)完成加载时发射该信号,参数progress表明当前page的加载进度
loadStarted() 当新page开始加载时发射该信号
renderProcessTerminated(...) 当连接过程以一个非0状态码结束时发射该信号
selectionChanged() 当在页面上的任意选择项更改时发送该信号
titleChanged( QString title ) 当title改变时发送该信号
urlChanged( QUrl url ) 当url改变时发送该信号

6、槽

说明

back() 返回前一个页面
forward() 返回后一个页面
reload() 重载当前页面
stop() 停止在家当前页面

Qt:QWebEngineView的更多相关文章

  1. Qt:禁止qDebug的输出

    Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT

  2. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

  3. Qt:QJsonObject

    0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...

  4. Qt:QJsonValue

    0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...

  5. Qt:QJsonArray

    0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...

  6. Qt:QUrl构造时的qrc前缀

    参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...

  7. QT:异常、错误

    1.Unknown module(s) in QT: xxx 原因1:我们的QT中没有安装这个Module 解决方法:Unknown module(s) 与MaintenanceTool.exe更新. ...

  8. Qt:正则表达式语法:

         正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式;        Qt 提供了一个Q ...

  9. Qt:QT右键菜单

    Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html h ...

随机推荐

  1. VUE3 之 多个 v-model 绑定及 v-model 修饰符的使用 - 这个系列的教程通俗易懂,适合新手

    1. 概述 洛克定律告诉我们: 当我们的目标很远大,远到我们都看不到终点时,放弃几率就会很大,就像跑马拉松比赛,由于时间长.距离长,很多选手都会选择在中途放弃. 其实有个好办法,就是拆分,把大目标拆分 ...

  2. 笔记:Bridging the Gap Between Relevance Matching and Semantic Matching for Short Text Similarity Modeling

    笔记:Bridging the Gap Between Relevance Matching and Semantic Matching for Short Text Similarity Model ...

  3. python网络爬虫-解析网页(六)

    解析网页 主要使用到3种方法提取网页中的数据,分别是正则表达式.beautifulsoup和lxml. 使用正则表达式解析网页 正则表达式是对字符串操作的逻辑公式 .代替任意字符 . *匹配前0个或多 ...

  4. 计算机电子书 2018 BiliDrive 备份

    下载方式 根据你的操作系统下载不同的 BiliDrive 二进制. 执行: bilidrive download <link> 链接 文档 链接 Webpack 中文指南.epub (40 ...

  5. 一步一步搭建基于ffmpeg和sdl2的流媒体播放器

    一.  背景: 一步一步从资料收集.技术选型.代码编写.性能优化,动手搭建一款支持rtsp.rtmp等常用流媒体格式的视频播放器,ffmpeg用于流媒体解码,sdl2用于视频画面渲染和声音播放. 二. ...

  6. ARC084F - XorShift

    有两种解法,这里都放一下. 解法一 首先易知异或运算可以视作是 \(\mathbb{F}_2\) 意义下的每一位独立的加法. 因此我们可以考虑对于每个二进制数 \(s\) 构造一个多项式 \(F(x) ...

  7. Servlet中@WebServlet属性详解

    感谢原文作者:想当一只小小攻城狮 原文链接:https://blog.csdn.net/weixin_45493751/article/details/100559683 在Servlet中,设置了@ ...

  8. Linux防火墙firewalld安全设置

    背景描述 防火墙是具有很好的保护作用.入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机.在公司里数据安全是最重要的,要求安全部门进行全公司进行服务器防火墙安全搭建,在原有的基础上进行安全的防火墙 ...

  9. 当Synchronized遇到这玩意儿,有个大坑,要注意!

    你好呀,我是歪歪. 前几天在某技术平台上看到别人提的关于 Synchronized 的一个用法问题,我觉得挺有意思的,这个问题其实也是我三年前面试某公司的时候遇到的一个真题,当时不知道面试官想要考什么 ...

  10. Ubuntu20.04.3中telnet 127.0.0.1时Unable to connect to remote host: Connection refused

    本博客旨在自我学习使用,如有任何疑问请及时联系博主 今天遇到个稀奇古怪的问题: 调试emqx的时候一直econnrefused,检查服务时,突然发现在ubuntu上telnet localhost竟然 ...