网站首页 > 编程文章 正文
前言
WebEngineView用于在 QML 界面中加载一个网页,该组件和QWebEngineView类对应,接口都是一样的,只是一个在 QML 中使用,一个是在 C++中使用,这里只根据在平常的使用中总结的简单的WebEngineView用法。
正文
简单用法
WebEngineView的使用非常简单,这里摘一段 Qt 帮助文档中的示例:
import QtQuick 2.0
import QtQuick.Window 2.0
import QtWebEngine 1.0
Window {
width: 1024
height: 750
visible: true
WebEngineView {
id:webview
anchors.fill: parent
url: "http://www.www.baidu.com"
如上示例,只需要指定 url,即可自动加载网,但是如果仅仅就写成这样,会出现一个问题,就是只能加载当前这个网页,如果在网页里面还想再次点击其他链接,这样是不会相应的,那么该怎么实现这个功能呢,加上以下这句:
onNewViewRequested: request.openIn(webview)
这里的newViewRequested是一个信号,来看一下 Qt 帮助文档中对这个信号的介绍:
This signal is emitted when a page load is requested to happen in a separate web engine view. This can either be because the current page requested it explicitly through a JavaScript call to window.open, or because the user clicked on a link while holding Shift, Ctrl, or a built-in combination that triggers the page to open in a new window.
帮助文档写的很清楚,这里就不过多介绍了,实现方式就是绑定过该信号,然后加上一句:request.openIn(webview)
网页中的视频不能加载
通过以上方式加载网页后,如果网页中包含视频或音频之类的元素,是不能正常播放的,这是因为没有默认运行插件,如 flash player,设置方法如下:
webview.settings.pluginsEnabled:true
官网介绍如下:
*Enables support for Pepper plugins, such as the Flash player.
Disabled by default.*
除了以上设置,WebEngineSettings中还有很多其他属性可以设置,具体查看帮助文档。
缓存路径,清除缓存
加载网页会有缓存产生,那么缓存的路径如下:
webview.profile.cachePath
清理缓存
webview.profile.clearHttpCache()
注意,清理缓存的接口在QtWebEngine 1.3中才有。
还有一个接口有必要说一下,重新加载网页内容可以用 reload()函数,有一个和它类似的接口叫
reloadAndBypassCache()
官网的介绍如下:
*Reloads the current page, ignoring any cached content.
This QML method was introduced in QtWebEngine 1.1.*
这个接口的作用就是跳过缓存然后重新加载网页,如果网页有改动,又不想去清除缓存,那么可以通过该接口来重新加载网页。
OK,以上是最近在项目中遇到的关于 QML 加载网页相关的问题,做个简单的记录。
【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】
点击这里:「链接」
猜你喜欢
- 2024-10-14 「Qt入门第31篇」 网络(一)Qt网络编程简介
- 2024-10-14 qt 做手机android的串口通讯 qt下串口通信
- 2024-10-14 Qt 读写txt文本文件(qt读入文件)
- 2024-10-14 Qt 信号槽连接不成功问题原因汇总
- 2024-10-14 QML 性能优化建议(一)(qml例程)
- 2024-10-14 C++ QT中文件的读写操作(UI界面)(qt怎么读取文件内容)
- 2024-10-14 Qt 中的智能指针(qt 函数指针)
- 2024-10-14 Qt如何读取和写入配置文件的数据(qt 读写配置文件)
- 2024-10-14 Qt pro文件中的常用宏说明(qt pro 自定义宏)
- 2024-10-14 Qt应用程序主窗口:拖放操作与打印文档
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)