小工具知识网

当前位置: 首页 > 行业知识 > c++/qt通过QWebChannel与JS/html网页端交互通信

行业知识

c++/qt通过QWebChannel与JS/html网页端交互通信

2026-11-03 07:09:48 来源:互联网转载

1、需要从网上下载两个文件

websocketclientwrapper.cpp 和 websocketclientwrapper.hwebsockettransport.cpp     和 websockettransport.h

2、QWebChannel注册通信通信类对象名:“MyWebTransPort”,js调用这个名进行通信;

3、js发送数据至c++调用函数:void RecvTextFromJs(const QString &text);

c++发送数据至js调用函数:void SignalSendToJs(QString text);

4、js/html网页作为客户端,c++/qt启动本地服务器作为服务端进行通信;

5、QT += webchannel websockets

备注:二者通信是点与点之间进行的一种双向互相通信的一种方式,通过qt特有的信号与槽进行接口调用通信。

亲测可用,话不多说上源码:

**

亲,感觉不错的话点个赞哦*

video

一、c++/qt端:

1、MainWindow.cpp

#include "MainWindow.h"#include "ui_MainWindow.h"MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent)    , ui(new Ui::MainWindow){    ui->setupUi(this);    initWebTransPort();    connect(ui->pushButton,&QPushButton::clicked,[=](){        static int i =0;        i++;        QString text = QString("send to js file %1 号").arg(QString::number(i));        emit m_web_transport->SignalSendToJs(text);        UpdateTextMessage(text);        qDebug()textEdit->append(text);}void MainWindow::initWebTransPort(){//通信核心代码    QString serverPort = "8003";    // 建立一个websocket服务器    if(m_websocketServer == NULL)        m_websocketServer = new QWebSocketServer(QStringLiteral("MyServer"),QWebSocketServer::NonSecureMode,this);    quint16 port = serverPort.toUInt();    if(!m_websocketServer->listen(QHostAddress("127.0.0.1"),port))    {        qDebug()registerObject("MyWebTransPort",m_web_transport); //网页上调佣MyWebTransPort,即可连接槽函数通信        qDebug()

上一篇:轻松下载cities的终极指南,一步到位,轻松搞定!

下一篇:怎么不能连接服务器?