Qt:QWebEngineView
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的更多相关文章
- Qt:禁止qDebug的输出
Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
- Qt:QJsonObject
0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...
- Qt:QJsonValue
0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...
- Qt:QJsonArray
0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...
- Qt:QUrl构造时的qrc前缀
参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...
- QT:异常、错误
1.Unknown module(s) in QT: xxx 原因1:我们的QT中没有安装这个Module 解决方法:Unknown module(s) 与MaintenanceTool.exe更新. ...
- Qt:正则表达式语法:
正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式; Qt 提供了一个Q ...
- Qt:QT右键菜单
Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html h ...
随机推荐
- linux下怎么挂载U盘
一般来说linux系统会自动挂载u盘,如果是图形界面,你一插上u盘会自动弹出来文件夹. 如果是命令行界面 使用命令 fdisk -l (root下执行) 显示如下 一般u盘都是fat32格式 ...
- Edge 91以上554、10080出现ERR_UNSAFE_PORT解决办法
解决办法 在注册表下面这个路径新建一个键值名为1的,输入10080(或554),重启浏览器,即可解决问题. 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Micro ...
- Linux身份鉴别机制原理
传统的UNIX身份鉴别机制原理 传统的UNIX身份鉴别即口令认证方式,它主要通过识别用户的用户名或者UID号获取在/etc/shadow中存放的对应用户密码密文等信息,然后获取用户输入密码并采用cry ...
- python 小兵内置函数进制转换
Python内置函数进制转换的用法 使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Conve ...
- python 小兵(6)函数根据问题详解
_list = []for i in range(3): def func(a): return i+a_list.append(func)for f in _list: print(f(1)) 首先 ...
- react组件中的类调用construcor、super方法你知道多少?
constructor:在类中作为一个钩子函数,有constructor钩子函数的时候,可以定义state,如果用户不定义state的话,有无constructor钩子函数没啥区别: super:
- Web3对于我们普通人意味着什么?
▲ 点击101链视界,关注不走丢 大家好,我是阿创,这是我的第27篇原创文章. 上一篇文章中我们了解了互联网的前世今生:Web 1.0.2.0.3.0,我们对Web的前两个阶段都不陌生,特别是 Web ...
- java实现多线程生产者消费者模式
1.概念 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题.生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消 ...
- 创建SSH密钥时使用了自定义文件名遇到的问题
问题描述 如图,我自定义了密钥文件名字. 所以在测试连接时导致了: 问题解决 连接的时候指定自己重命名的私钥文件名就好了. ssh -T -i git_test git@github.com SSH命 ...
- centos7 安装yum源
centos7的服务器,没有yum,没有wget命令真的寸步难行,经过总结和查询,现在算搞定了,把经验总结一下,以免大家再浪费时间去找原因: 安装yum需要wget安装yum的rpm包,所以前提是先有 ...