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. linux搭建本地和网络yum源

    [mirrors.163.com] name=mirrors.163.com baseurl=http://mirrors.163.com/centos/7/os/x86_64/ enabled=1 ...

  2. python语法缩进

    1.python会根据缩进来判断代码行和前一句代码行之间的关系 2.for循环后一定要缩进,for循环后面的冒号代表告诉python,下面是代码行缩进的第一行

  3. kubernetes之手动部署k8s 1.14.1高可用集群

    1. 架构信息 系统版本:CentOS 7.6 内核:3.10.0-957.el7.x86_64 Kubernetes: v1.14.1 Docker-ce: 18.09.5 推荐硬件配置:4核8G ...

  4. Redis 源码简洁剖析 04 - Sorted Set 有序集合

    Sorted Set 是什么 Sorted Set 命令及实现方法 Sorted Set 数据结构 跳表(skiplist) 跳表节点的结构定义 跳表的定义 跳表节点查询 层数设置 跳表插入节点 zs ...

  5. Android安卓开发一环境配置

    安卓项目开发 我采用的安卓开发软件是IDEA,IDEA功能强大,具有集成的安卓开发环境. 安卓开发的首要任务是在IDEA配置安卓开发环境 第一步新建一个安卓项目 按照提示完成操作,首次建立安卓项目它会 ...

  6. python 小兵(2)

    while 条件: 结构体 if=条件: 等于 while 条件: 结构体 else: print(int(Ture))    1 print(int(False))   0 切片顾头不顾尾 prin ...

  7. Vue3源码分析之 Ref 与 ReactiveEffect

    Vue3中的响应式实现原理 完整 js版本简易源码 在最底部 ref 与 reactive 是Vue3中的两个定义响应式对象的API,其中reactive是通过 Proxy 来实现的,它返回对象的响应 ...

  8. 初步认识微前端(single-spa 和 qiankun)

    初步认识微前端 微前端是什么 现在的前端应用,功能.交互日益复杂,若只由一个团队负责,随着时间的推进,会越来越庞大,愈发难以维护. 微前端这个名词,第一次提出是在2016年底.它将微服务(将单一应用程 ...

  9. Maven 项目报出警告:Warning:java: source value 1.5 is obsolete and will be removed in a future release

    感谢原文作者:Hxinguan 原文链接:https://www.cnblogs.com/Hxinguan/p/6132446.html 问题: 1.创建maven项目的时候,jdk版本是1.5版本, ...

  10. 自动归档autoArchive By H.l

    写点简单的代码,让开发更简单 详情:ios 应用实现快速的临时缓存之模型的自动归档 Demo:https://files.cnblogs.com/files/sixindev/AutoArchiver ...