Qt 与 JavaScript 网页端 通信和调用

前言

主要使用 QWebEngineView 与 QWebChannel 来实现于 JavaScript 的交互

【注】:

需要 qwebchannel.js 文件,放在 .html 文件 同级目录下。

附上下载路径: https://download.csdn.net/download/LearnLHC/14039725

 

先附上,使用 Qt 调用 百度地图 api,显示网页版地图

一、Qt 与 JS 交互:

1、main.cpp

#include "QtBaiduMapDialog.h"
#include "QtJavascriptCommunication.h"

#include <QtWidgets/QApplication>
#include <QDir>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

	// QT 与 JS 相互调用各自的函数;
	QtJavascriptCommunication w;
	w.showUrl(QString("%1/Resource/yanshi.html").arg(QDir::currentPath()));
	w.show();

	// QT 显示 JS 百度地图;
	/*QtBaiduMapDialog baiduMap;
	baiduMap.show();*/

    return a.exec();
}

2、QtJavascriptCommunication.h

#pragma once

#include <QtWidgets/QDialog>
#include <QWebChannel>

#include "ui_QtJavascriptCommunication.h"

class QtJavascriptCommunication : public QDialog
{
    Q_OBJECT

public:
    QtJavascriptCommunication(QWidget *parent = Q_NULLPTR);
	~QtJavascriptCommunication();

	void showUrl(QString url);

public slots:
	void on_pushButton_clicked();

// QT 与 JS 通信要点 ②:JS 调用 QT 的函数,必须为 槽 函数;
// QT 与 JS 通信要点 ③:槽 函数必须用 [public slots:] 修饰,不能用 [Q_SLOT];
public slots:
	void sltRecieveJsMessage(QString msg);

private:
    Ui::QtJavascriptCommunicationClass ui;
	QWebChannel * m_pWebChannel;

};

3、QtJavascriptCommunication.cpp

#include <QMessageBox>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值