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. ApacheCN 数据科学译文集 2020.8

    协议:CC BY-NC-SA 4.0 不要担心自己的形象,只关心如何实现目标.--<原则>,生活原则 2.3.c 在线阅读 ApacheCN 面试求职交流群 724187166 Apach ...

  2. CF1399F Yet Another Segments Subset

    首先注意一下题面要求,使得选出的线段两两要么包含要么不相交,也就是说一条线段可能会出现不相交的几条线段,而这些线段上面也可能继续这样包含线段.然后我们可以发现我们要做的实际上是在这条线段上选取几条线段 ...

  3. AQS源码一窥-JUC系列

    AQS源码一窥 考虑到AQS的代码量较大,涉及信息量也较多,计划是先使用较常用的ReentrantLock使用代码对AQS源码进行一个分析,一窥内部实现,然后再全面分析完AQS,最后把以它为基础的同步 ...

  4. 关于diffing算法中key的使用

    在vue和react中(只学了这两个),经常需要渲染元素到DOM上,而且如果不写key,有的浏览器会进行报错或者进行提示. 在我的理解里:key其实就是一个身份的标识,证明这个位置坐的就是这个人.后期 ...

  5. Java-方法的递归调用

    方法的递归是指在一个方法的内部调用自身的过程.递归必须要有结束条件,否则将陷入无限递归的状态,永远无法结束调用. 代码 public class Example24{ public static vo ...

  6. 微服务中的CAP原则

    CAP原则:指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三个要素最多同时实现两点不可能同时实 ...

  7. JVM学习十三 - (复习)HotSpot 虚拟机对象探秘

    对象的内存布局 在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域: 对象头(Header) 实例数据(Instance Data) 对齐填充(Padding) 对象头 对象头记录了对象 ...

  8. Nginx+Tomcat 实现负载均衡 ,动静分离集群部署

    Nginx + Tomcat 实现负载均衡,动静分离集群部署 1.Nginx实现负载均衡原理 2.Nginx配置反向代理主要参数 3.实验 1.Nginx实现负载均衡原理: Nginx服务器作为前端, ...

  9. Linux防火墙(iptables/firewalld)

    Linux防火墙(iptables/firewalld) 目录 Linux防火墙(iptables/firewalld) 一.iptables 1. iptables概述 2. netfilter和i ...

  10. 实现redis哨兵,模拟master故障场景

    由于主从架构无法实现master和slave角色的自动切换,所以在发送master节点宕机时,redis主从复制无法实现自动的故障转移,即将slave 自动提升为新的master.因此,需要配置哨兵来 ...