QWebEngineView使用-Qt与Js相互调用

Ubuntu Qt QWebEngine使用Js交互 1.QwebEngineView加载本地html 2.qtjs交互 阅读详情

QWebengineView使用说明

1. 工程文件

QT += webenginewidgets

2. 源代码

#include <QWebEngineView>

QWebEngineView* view;

    view = new QWebEngineView(this);
    view->load(QUrl("http://www.baidu.com/"));
    view->show();

使用Js调用Qt中类的原理,是在Qt中新建一个C++的类作为C++与Js的共同的类,这个类的父类是QObject,通过webChannel将这个类注册到Js中后,然后,将qtwebengineview的通道设置为webChannel,Js可以直接调用桥梁中的糟函数,再利用糟函数发出信号,再使用其它窗口接收这个类的信号,完成Js调用Qt中函数的作用。

详解

使用原理

使用Js调用Qt中类的原理,是在Qt中新建一个C++的类作为C++与Js的共同的类,这个类的父类是QObject,通过webChannel将这个类注册到Js中后,然后,将qtwebengineview的通道设置为webChannel,Js可以直接调用桥梁中的糟函数,再利用糟函数发出信号,再使用其它窗口接收这个类的信号,完成Js调用Qt中函数的作用。

代码

定义一个Qt调用Js的通道

文件名: webBridge.h
*****************************
class JsChannel : public QObject
{    
    Q_OBJECT
public:    
    explicit JsChannel(QObject *parent = nullptr);
public slots:
    //这个糟函数是给Js调用的,每当Js调用这个 jsCallme() 这个类就会在Qt中产生 
Qt中浏览器QWebEngineView使用1 当今的桌面软件开发,web化逐渐成为了趋势,VSCode,Atom等一系列优秀的软件都是基于github家的Electron(使用html,css,js来进行开发的桌面端应用程序),通俗得来说,就是把网页打包成一个在桌面运行的程序。优点是开发快速,前端也能开发桌面软件,并且跨平台,缺点是性能差速度慢,不能做成大型商业软件。类比一下notepad和vscode的打开速度就知道了。 回到本篇博客的目的,我们为什么要在Qt中嵌入一个网页?为什么不直接使用Electron开发整套软件? 1. 由于web端. 阅读详情

相关推荐

QtQWebEngineView调用Echarts方法

最近在做Qt绘制散点图和统计图的方法,顺便研究了一下Qt使用Echarts的方法,Echarts功能很强大,Qt调用其他也很方便。我使用的是Qt5.6版本中的QWebEngineView显示Echarts图的,Qt5.4(包括5.4)之前的版本是使用QWebView进行显示的,方法都是一样的。测试代码写的比较简单,只是为了说明使用。一、效果图如下: 效果图中的html代码是从官网中直接粘贴下来

ISmileLi的博客 7970

使用QWebEngineView实现HTML和JavaScript交互

在上述示例中,我们首先定义了一个名为MyObject的自定义Qt对象,并声明了一个名为showMessage的槽函数。它基于Chromium的Web引擎,可以加载和显示HTML页面,并且支持JavaScriptQt应用程序的交互。在信号的槽函数中,我们执行了一个简单的JavaScript代码,向控制台输出一条消息。通过以上步骤,我们实现了使用QWebEngineViewQt应用程序中加载HTML页面并JavaScript进行交互的功能。你可以根据实际需求,进一步扩展和定制交互逻辑。

CodeJolt的博客 584

QtQWebEngineView

如果要定制一个菜单,或者向原菜单、工具栏中添加一些额外的action,可以通过pageAction()构造。一个Site会有一个icon,通过icon()访问,这个icon的URL通过iconUrl()访问。当title、icon改变时,相应的会发送titleChanged()、iconChanged()、iconUrlChanged()信号。此外,也可以用setUrl()方法可以用于加载Web Site,如果我们有一个HTML 内容,可以用setHtml()方法进行加载。

QtCompany的博客 1933

使用QTJavaScript实现数据交互

现在,我们已经将Web视图嵌入到QT应用程序中,接下来让我们看看如何在QT应用程序和JavaScript之间进行数据交互。现在,当我们在JavaScript调用showMessage()函数时,QT应用程序将接收到消息,并将其打印到调试输出。现在,我们已经将Web视图嵌入到QT应用程序中,接下来让我们看看如何在QT应用程序和JavaScript之间进行数据交互。现在,当我们在JavaScript调用showMessage()函数时,QT应用程序将接收到消息,并将其打印到调试输出。

FucMobile的博客 795

QWebengineViewjs交互

QWebengineViewjs交互 QWebengineView和html交互 QWebengineViewjs通信 Qtjs通信 Qtjs交互

风起时~微凉的博客 3761

QWebEngineViewjs交互

5.Js调用Qt,要先在中添加qDebug()

yth796的专栏 2588

Qt QWebEngine 加载网页及交互,实现C++JS 相互调用

本篇主要介绍QT开发过程中如何利用QWebengine加载网页,通过C++JS 相互调用,实现QT程序HTML网页的交互QtWebEngine 是Qt的一个子模块,它提供了一个 Web 浏览器引擎,可以轻松地将互联网上的内容嵌入到 Qt 应用程序中。Qt WebEngine Widgets Module 用于创建基于小部件的 Web 应用程序Qt WebEngine Module 用于创建基于 Qt Quick 的 Web 应用程序。

北极星的技术笔记 1万+

QT5.9 利用 QWebEngineView / QWebChannel 调用JavaScript 实现QTHTML网页数据交互, 实现QT加载百度地图并地图交互数据

QT5.9 利用 QWebEngineView / QWebChannel 调用JavaScript 实现QTHTML网页数据交互, 实现QT加载百度地图并地图交互数据 编译环境 QT5.9.3 + VS2015 64/32bit +win10 (MinGW默认不支持 QWebEngineView) 先看软件截图: 实现功能: 1.QT通过QWebEngineView模块加载百度地...

qq_43569273的博客 1万+

PySide2 QWebEngineWeb js交互

python使用PySide2Web js进行交互

weixin_45228198的博客 2252

QTQWebEngineView详细介绍

QWebEngineViewQt框架中的一个组件,它是基于Chromium内核的Web浏览器引擎,用于在Qt应用程序中嵌入网页内容和实现各种Web应用功能。通过QWebEngineView开发者可以在本地桌面应用程序中轻松地集成网页浏览功能,支持HTML5、CSS3、JavaScript等现代Web技术。注意:QWebEngineView类仅支持QT的5.4版本以上,之前的版本都是使用QtWebKit,QtWebKit类在5.4版本以上已经被丢弃了,不能使用了。

2401_83283786的博客 1万+

PyQt5 QWebEngineView中实现Python和JavaScript交互数据传递demo

【代码】PyQt5 QWebEngineView中实现Python和JavaScript交互数据传递demo。

h1126560716的博客 1278

Qt C++混合编程 (2) Qt通过QWebEngineViewJS交互

C++调用js很简单 m_view->page()->runJavaScript(QString("showPie(%1)").arg(sHtml)); js调用C++函数 //和Qt交互部分 new QWebChannel(qt.webChannelTransport, function(channel) { window.bridge = channel.objects.bridge_name; }) //开始调用C++中函数 if(br.

Zy100Papa的博客 7327

QT内嵌浏览器JS通讯

QT内嵌浏览器JS通讯

weixin_41111116的博客 2574

关于Qt 加载网页(一) QWebengineView

最近遇见了QWebengineView* createWindow 一旦return this就会崩溃,因为我想要在同一个页面内点击链接然后重新加载URL。但是Qt的帮助信息告诉我,需要利用QWebengineView* createWindow函数来新建一个QWebengineView对象,并且返回才可以实现。但是这种做法有一个明显的bug,那就是随着页面打开次数的增加,内存迟早要占满。当然Qt给出的解决思路是将新建的QWebEngineView指定一个父窗口来显示,然后通过开关这个父窗口来控制这个新建Q

weixin_42043127的博客 2万+

QWebEngineViewJS交互 附带实例

代码从qt4.8迁移到qt5.9,QWebkit也变成了QWebEngineView。下面将介绍QWebEngineViewJS交互及一些关注点。 两者交互的原理网络上和开发文档中已经介绍了很多,在此不再赘述。看代码 1、JS部分 draw.html中绘制了一个简单的温度计,提供接口给QT调用,从而设置温度计的值。核心代码如下: <head> <meta ch...

xumingyifrend的博客 3138
上一篇: Qt获取计算机硬件信息(主板唯一识别码)
下一篇: Qt 之 QtConcurrent
Qt开发老杰
博客等级 码龄4年 364粉丝 554原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值