Qt加载QWebEngineView和js交互

本文介绍了如何在Qt5环境下使用QWebEngineView组件,并结合Chromium内核,实现Qt C++与JavaScript的交互。通过加载qwebchannel.js和jquery-3.1.1.min.js,创建QWebChannel对象并注册Qt对象,使得JavaScript能够调用Qt提供的方法。同时,文章提到了调试技巧,如设置QTWEBENGINE_REMOTE_DEBUGGING环境变量,并提供了示例代码和调试页面链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        编译环境为(win10),Qt版本5.5.1, VS2013(建议用更高版本,); 因为要用到chrom浏览器加载网页,偶然得知Qt5之后竟然集成了chromium;测试验证技术是否可用,目前除了http音频无法播放,CPP和JS交互,包括网页调试,已完全OK;顺便吐槽一下“百度”,搜的都是一样,多少都少点东西,不是缺 qwebchannel.js 就是少了jquery-3.1.1.min.js,一般情况下肯定在本地调试! 少了jquery,本地测试js无法调用Qt提供的方法(也是公共槽的方法);

下面是主要代码 和 注意事项:

       1.必须加载qwebchannel.js, 如果是本地调试还需要jquery-3.1.1.min.js;

       2.打开本地调试:http://127.0.0.1:9999(Remote debugging server started successfully. Try pointing a Chromium-based browser to http://127.0.0.1:9999)

定义更新属性:

          

#ifndef JSCPP_H
#define JSCPP_H

#include <QObject>
#include <QMessageBox>

class JsCpp : public QObject
{
    Q_OBJECT

    Q_PROPERTY(QString name MEMBER m_name NOTIFY sigNameChanged)
    Q_PROPERTY(int age MEMBER m_age NOTIFY sigAgeChanged)

public:
    JsCpp(QObject *parent = 0);
    ~JsCpp();

public:
    void SetName(const QString name);
    void SetAge(const int age);

public slots:
    void ShowMsg(const QString& param1, const QString& param2);

signals:
    void sigNameChanged(const QString& name);<

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值