Qt文档阅读笔记-QWebEngineView及QML WebEngineView 全球微资讯
这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读笔记:
(相关资料图)
QWebEngineView
QWebEngineView提供了widget去查看和编辑web网页。
使用load()函数去加载一个web页面,这里会调用GET方法。
使用show函数,展示这个页面。
QWebEngineView *view = new QWebEngineView(parent);view->load(QUrl("http://qt-project.org/"));view->show();
如果访问站点,使用setUrl(),如果加载本地html文件使用setHtml()。
当某给网页被加载的时候loadStarted()信号将会触发。当某个元素完成加载时会触发loadProgress()信号,如图片或者脚本。当加载完成时会触发loadFinished()信号,此信号带有给参数,当为true时说明页面加载完成,当为false时说明相反。
page()函数返回web页面对象的指针。QWebEngineView中包含了QWebEnginePage,并且QWebEnginePage会加载到QWebEngineHistory的上下文中。
HTML中的title会被设置到title()属性中。Icon()保存其图标或者在iconUrl()中存储其icon的url链接。当这些数据变化时,titileChanged()、iconChanged()、iconUrlChanged()信号将会被触发。ZoomFactor()属性将存储网页内容的放大和缩小。
如果需要自定义上下文菜单,需要继承contextMenuEvent(),这里可以在pageAction()中设置QMenu,选中文字,复制粘贴等功能都可以通过这个方式进行实现。使用triggerPageAction()进行触发。
这里可以继承QWebEngineView重写createWindows()函数,实现点击后弹出web窗口的功能。
这里,个人提供一个简单的例子,可以跑起来
profile
QT += core gui webenginewidgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = WebEngineTestTEMPLATE = appDEFINES += QT_DEPRECATED_WARNINGSSOURCES += main.cpp\Widget.cppHEADERS += Widget.hFORMS += Widget.ui
main.cpp
#include "Widget.h"
#include #include int main(int argc, char *argv[]){QApplication a(argc, argv);//Widget w;//w.show();QWebEngineView view;view.load(QUrl("http://it1995.cn"));view.show();return a.exec();}
运行截图如下:
源码打包下载地址:
https://github.com/fengfanchen/Qt/tree/master/WebEngineTest
下面是QML中如何去用
WebEngineView QML Type
WebEngineView可以在QML应用程序中的某个区域渲染出一个动态的web网站。
初始化Web Engine
在main函数中调用QtWebEngine::initialize()初始化WebEngine,如下代码:
int main(int argc, char *argv[]){QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);QtWebEngine::initialize();QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));return app.exec();}
在WebEngineView中,通过url属性,或loadHtml方法,这里是通过GET方法进行调用,如下代码:
import QtQuick 2.0import QtQuick.Window 2.0import QtWebEngine 1.0Window {width: 1024height: 750visible: trueWebEngineView {anchors.fill: parenturl: "http://www.qt.io"}}
loadingChanged()信号将会在页面开始、结束、失败时触发。
title属性中存储网页标题,icon属性存储网页图标,同样zoomFactor属性存储其放缩。
certicateError()和WebEngineCertificateError会为错误相关的信号。
newViewRequested()信号当有新的页面独立打卡时触发。NewViewDestionation属性存储那个url将会被打卡。
findText()为在网页上搜索字符串。
setActiveFocusOnPress()为聚焦网页上的某个元素。
linkHovered()信号是在用户把鼠标移动到链接上的时候就会被触发。
UserScripts属性存储用户的脚本,这个脚本会注入到WebEngineScript中。可以使用runJavaScript()方法进行调用。
Web engine view可以独立的加载不同的配置文件
下面是使用WebEngineView的一个小例子
源码如下:
profile
TEMPLATE = appQT += qml quick webengineCONFIG += c++11SOURCES += main.cppRESOURCES += qml.qrcQML_IMPORT_PATH =QML_DESIGNER_IMPORT_PATH =DEFINES += QT_DEPRECATED_WARNINGSqnx: target.path = /tmp/${TARGET}/binelse: unix:!android: target.path = /opt/${TARGET}/bin!isEmpty(target.path): INSTALLS += target
main.cpp
#include #include #include int main(int argc, char *argv[]){QGuiApplication app(argc, argv);QtWebEngine::initialize();QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));return app.exec();}
main.qml
import QtQuick 2.5import QtQuick.Window 2.2import QtWebEngine 1.0Window {width: 1024height: 750visible: trueWebEngineView {anchors.fill: parenturl: "http:/it1995.cn"}}
程序运行截图如下:
【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】
点击这里:
关键词:
责任编辑:hnmd004
- Qt文档阅读笔记-QWebEngineView及QML WebE2023-04-21
- 每日观察!伟源控股(01343):控股股东WGIBVI2023-04-21
- 广生堂2022年研发投入翻倍增长,创新药临床2023-04-21
- 国银金租(01606)与德州市城市建设投资发展2023-04-21
- 2000亿光伏龙头没死透,还想借壳还魂?-微2023-04-21
- 成达万高铁“最难建”大桥主墩承台浇筑完成2023-04-21
- 世界观点:两款热管理新品发布 美的威灵汽2023-04-21
- 下滑杠怎么输入_下滑杠 世界资讯2023-04-21
- 行银易贷网贷逾期3000影响征信吗 世界微动态2023-04-21
- 京东金条逾期9个月征信有什么影响2023-04-21
- 借购消费贷逾期38年会上征信系统吗|新动态2023-04-21
- 焦点快报!合肥,竞逐“星赛道”,开拓“星2023-04-21
- 环球热头条丨菏泽鲁西新区陈集镇:设施改善2023-04-21
- 清飞絮、除隐患,李营街道培文社区开展保安2023-04-21
- 焦点消息!新华区这处城市书房荣获全国“最2023-04-21
- 永顺生物2022年营收3.49亿 净利8603.59万2023-04-21
- 花湖机场、顺丰鄂州枢纽联合声明!_简讯2023-04-21
- 今日报丨北京长峰医院火灾事故已致29死 国2023-04-21
- 22岁旅泰大熊猫“林惠”死亡,曾被拍到鼻部2023-04-21
- 外媒:基辅夜空突现神秘闪光引猜测,有人提2023-04-21
- 两部门:剧本娱乐经营场所不得设置在住宅建2023-04-21
- 视频 | 涉及台海,菲律宾总统的姐姐反应2023-04-21
- 天天即时:快讯!外媒:美国星舰在得克萨斯2023-04-21
- 全球信息:石景山区卫健委加强医疗卫生机构2023-04-21
- 当前关注:北京长峰医院火灾21人遇难,北京2023-04-21
- 全球焦点!咳绿色浓痰是什么病症会自己好吗2023-04-21
- 报告:全国零售市场持续回暖-即时焦点2023-04-21
- 焦点信息:在小巷深处“穿越”上巳节2023-04-21
- 有人投喂有人烦,流浪猫怎么治2023-04-21
- 二人同时捐献造血干细胞 环球微速讯2023-04-21