QML开发简单浏览器(加载H5)
来源:互联网 发布:照片恢复软件下载 编辑:程序博客网 时间:2024/05/16 14:33
QML开发浏览器以及加载HTML5页面,主要利用QML的WebEngineView可实现对网页的加载。
其代码如下:
import QtQuick 2.4import QtQuick.Layouts 1.2import QtQuick.Controls 1.4import QtQuick.Controls.Styles 1.4import QtWebEngine 1.1Rectangle { id: root width: 800 height: 600 Rectangle { id: edit_area width: parent.width height: 70 anchors { left: parent.left right: parent.right } color: "#E4EEF9" Button { id: goBack_click anchors { left: parent.left leftMargin: 5 verticalCenter: edit_area.verticalCenter } width: 30 height: url_edit.height property color bgColor: webView.canGoBack?"blue":"gray" style: ButtonStyle { background: Rectangle { anchors.fill: parent color: goBack_click.bgColor radius: width/2 } label: Label { text: "<-" font.pixelSize: 20 } } onClicked: { webView.goBack() } } Button { id: goForward_click anchors { left: goBack_click.right leftMargin: 2 verticalCenter: edit_area.verticalCenter } width: 30 height: url_edit.height property color bgColor: webView.canGoForward?"blue":"gray" style: ButtonStyle { background: Rectangle { anchors.fill: parent color: goForward_click.bgColor radius: width/2 } label: Label { text: "->" font.pixelSize: 20 } } onClicked: { webView.goForward() } } TextField { id: url_edit width: parent.width-150 height: 27 anchors { left: goForward_click.right leftMargin: 5 rightMargin: 80 verticalCenter: parent.verticalCenter } placeholderText: qsTr("请输入网址") focus: true font.pixelSize: 16 } Button { id: enter_click anchors { left: url_edit.right leftMargin: 5 verticalCenter: edit_area.verticalCenter } width: 60 height: url_edit.height style: ButtonStyle { background: Rectangle { anchors.fill: parent color: "blue" radius: 5 } label: Label { text: "go>>>" font.pixelSize: 20 } } onClicked: { webView.url = "https://" + url_edit.text url_edit.text = webView.url } } Keys.onReturnPressed: { webView.url = "https://" + url_edit.text url_edit.text = webView.url } } WebEngineView { id: webView anchors { top: edit_area.bottom left: parent.left right: parent.right bottom: parent.bottom margins: 1 } //url: "https://www.baidu.com" smooth: true visible: true onNewViewRequested: request.openIn(webView) onUrlChanged: { url_edit.text = webView.url } }}
当给webView的url赋值为"https://www.baidu.com"时(即输入网址出输入:www.baidu.com),即可加载出百度的首页。
效果如下:
(上图为从百度首页点击新闻后的效果)
※在Windows上可以顺利开发出简单浏览器,但是在Linux和MaxOSX上,需要注意的是:
1.应用程序的搜索库路径中一定要存在Qt5WebEngineCore库,在Linux上为QtWebEngineCore.so动态库,在MacOSX上为QtWebEngineCore.framework2.一定要存在QtWebEnginePrecess的可执行程序,在MacOSX上为QtWebEnginePrecess.app,此时要注意,QtWebEnginePrecess.app以及app中的QtWebEnginePrecess二进制都必须要有执行权限,否则应用程序是加载不出页面的。
3.一定要将Qt的translations文件夹下的qtwebengine_locales文件夹放到应用程序的相应位置中,否则也是加载不出页面的。此处注意:Mac下用macdeployqt进行部署包后,其qtwebengine_locales文件夹会自动放在包的/Frameworks/QtWebEngineCore.framework/Versions/5/Resources/qtwebengine_locales下,但是在Linux下进行打包时,一定要记得该文件夹。
4.要将Qt库下的resources文件夹下的文件拷贝到应用程序中,其中包括:icudtl.dat、qtwebengine_resources.pak、qtwebengine_resources_100p.pak、qtwebengine_resources_200p.pak,MaxOSX用macdeployqt会自动放到/Frameworks/QtWebEngineCore.framework/Versions/5/Resources下,Linux下手动拷贝吧。
5.最好将其相关的动态库也拷贝过去,包括QtWebEngine以及QtWebChannel,涉及到页面的通讯以及加载相关,以免出现幺蛾子^_^.
——————————————————————————————————————————————————————————
希望有兴趣的朋友可以和我进行交流学习,关注我的公众号,搜索【三个程序员】进行关注 ^-^
——————————————————————————————————————————————————————————
0 0
- QML开发简单浏览器(加载H5)
- Qt/QML开发支持下载的简单浏览器
- Android开发---加载h5界面
- qml在开发板上启动时,出现白屏(qml的两种加载方式)
- Android 加载 自己的H5,跳到内部浏览器
- qml-------------实现一个简单的图片加载程序
- QML小结1-(一个简单的qml程序)
- QML小结1-(一个简单的qml程序)
- 禁用混合开发中H5页面的浏览器默认功能
- h5开发必备工具之草料二维码浏览器插件
- webview 加载h5页面,播放视频+全屏,实现简单封装
- H5开发:H5如何设置head头部与做到咯浏览器适配
- QML Applications QML应用程序开发
- QML之动态加载
- 用QML开发Android APP(一)
- android开发简单图片浏览器
- QML之使用Loader加载QML组件
- h5开发
- [AHK]读取硬件信息
- 多UI线程WPF程序随机挂起问题
- eclipse install software时始终停留在calculating requirements and depen
- WSAAsyncSelect模型
- 8.内部温度传感器的使用—基于CT117E开发板的STM32库函数编程
- QML开发简单浏览器(加载H5)
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 用Spark学习FP Tree算法和PrefixSpan算法_0
- Mysql ERROR 1045 (28000): Access denied for user '
- nodejs中文件路径相关API:path
- atom expose 升级失败的解决办法
- Opencv3.2+VS2015环境配置(VS2015以下版本需要自己编译dll)
- Android App开发从零开始之基础篇—布局和控件(二)— 控件
- 彻底弄懂最短路径问题