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. python初学笔记之列表推导式

    列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表.注意:简而言之,就是把普通的多行for循环压缩成一行代码,这种压缩语法适用于列表.字典.集合等可迭代数据结构(iterables).创建 ...

  2. java中的继承 和多态。

    package com.aaa.zxf.ajax.test; /** *一. java 中的继承和多态. * * 继承的特性? * 1.实现继承的方式 * A 如何建立继承关系(一个类继承于 另一个类 ...

  3. php表单初始化

    转载请注明来源:https://www.cnblogs.com/hookjc/ //初始化表单值的函数function  InitForm($row,$form="form1"){ ...

  4. 如何清除项目git版本控制信息

    首先进入项目目录下 邮件打开 git bash here 执行命令 find . -name ".git" | xargs rm -rf 就清除了git版本控制信息

  5. 使用Reachability监测网络变化-陈鹏

    在appdelegate里面添加观察者,并启动监测 // 使用通知中心监听kReachabilityChangedNotification通知 [[NSNotificationCenter defau ...

  6. NoSQL 之 Redis配置与优化

    NoSQL 之 Redis配置与优化 1.关系数据库与非关系型数据库概述 2.关系数据库与非关系型数据库区别 3.非关系型数据库产生背景 4.Redis简介 5.Redis安装部署 6.Redis 命 ...

  7. Docker使用Dockerfile构建新的镜像

    构建镜像步骤; 1.创建Dockerfile文件,该文件是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明. vim Dockerfile //每一个指令都会在镜像上创建一个新 ...

  8. Java一维与二维数组的拷贝与排序

    Java一维与二维数组的拷贝与排序 目录 Java一维与二维数组的拷贝与排序 Arrays.sort() 一维数组升序排序 二维数组按行升序排序 二维数组按列升序排序 Java中的数组 Java中数组 ...

  9. Elasticsearch使用系列-Docker搭建Elasticsearch集群

    Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...

  10. 02 前端基础之CSS

    目录 前端基础之CSS css简介 基本选择器(重要) 组合选择器(重点) 属性选择器 分组与嵌套 伪类选择器 伪元素选择器 选择器的优先级 字体相关 背景属性 边框属性 display属性 盒子模型 ...