ZBLOG

在qt5.13.2版本中实现和这段代码一样的功能 ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("Dialog", this);

在Qt 5.13.2版本中,可以使用QWebEngineView来替代旧版的WebView,并通过QWebChannel实现类似的功能。首先,确保你已经添加了webenginewidgets模块到项目文件中。

#include <QWebEngineView>
#include <QWebChannel>

// 创建一个全局对象
class DialogObject : public QObject
{
    Q_OBJECT

public slots:
    void showMessage(const QString& message)
    {
        // 处理JavaScript发来的消息
        qDebug() << "Received message from JavaScript:" << message;
    }
};

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

    // 创建主窗口和Web视图
    QMainWindow window;
    QWebEngineView webView(&window);

    // 注册C++对象到JavaScript上下文中
    QWebChannel webChannel;
    DialogObject dialogObject;
    webChannel.registerObject(QStringLiteral("Dialog"), &dialogObject);
    
    // 将QWebChannel连接到Web视图页面
    webView.page()->setWebChannel(&webChannel);

    // 加载网页
    webView.load(QUrl("your_web_page.html"));

   // 显示窗口和运行应用程序事件循环
   window.show();
   return a.exec();
}

确保在.pro文件中添加以下内容:

QT += webenginewidgets webchannel

以上代码演示了如何在Qt 5.13.2中使用QWebEngineView和QWebChannel将C++对象注册到JavaScript上下文,并使其可通过名为”Dialog”的全局对象访问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=7271

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?