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. 不难懂——th: 的常用标签

    关键字>       功能介绍    >      案例 th:id 替换id <input th:id="'xxx' + ${collect.id}"/> ...

  2. 单例模式的各种实现方式(Java)

    单例模式的基础实现方式 手写普通的单例模式要点有三个: 将构造函数私有化 利用静态变量来保存全局唯一的单例对象 使用静态方法 getInstance() 获取单例对象 懒汉模式 懒汉模式指的是单例对象 ...

  3. Android开发-页面布局

    首页布局 首页是ListView的布局 这个还需要制作ListView组件和适配器来显示数据. 关于页面 关于页面显示的是软件的基本信息和软件制作者的信息 这个就是采用基本的页面布局就行.

  4. python 小兵(10)内置函数

    内置函数(下午讲解) 什么是内置函数?就是python帮我们提供的一个工具,拿过直接用就行,比如我们的print,input,type,id等等.截止到python3.6.2版本 中一共提供了68个内 ...

  5. JS generator(生成器)

    笔记整理自:廖雪峰老师的JS教程 目录 简介 与函数的不同之处 函数写法 generator写法 generator调用 generator对象的`next()`方法调用 `for ... of`循环 ...

  6. C语言中缀表达式求值(综合)

    题前需要了解的:中缀.后缀表达式是什么?(不知道你们知不知道,反正我当时不知道,搜的百度) 基本思路:先把输入的中缀表达式→后缀表达式→进行计算得出结果 栈:"先进先出,先进后出" ...

  7. Tomcat 下载安装,启动,停止,注册服务,开机自启

    感谢大佬:https://blog.csdn.net/wangmx1993328/article/details/81013715 目录 Tomcat 下载 startup.bat 启动 Tomcat ...

  8. war3 Game

    转载请注明来源:https://www.cnblogs.com/hookjc/ //位置结构.x,y不多说,unknown是3F800000.浮点数1.0?? struct Pos {   DWORD ...

  9. Jest_JavaScript测试框架

    Jest是一个JavaScript测试框架,由Facebook用来测试所有JavaScript代码,包括React应用程序. 不同级别的自动化测试:单元.集成.组件和功能. 单元测试可以看作是和在组件 ...

  10. D介绍-概述

    INTRODUCTION THE SELENIUM PROJECT AND TOOLS Selenium controls web browsers Selenium is many things, ...