gpt4 book ai didi

qt - 如何使用 Qt HTML5 应用程序向浏览器发送数据或从浏览器发送数据

转载 作者:行者123 更新时间:2023-12-03 16:43:33 24 4
gpt4 key购买 nike

在线提供的教程都没有展示如何创建 Qt HTML5 应用程序。理想情况下,我只需要一种在 webkit 和 Qt 之间发送数据(一个字符串即可)的方法。

当我创建一个 Qt HTML5 应用程序时,它会生成

  • myApp.pro
  • html5applicationviewer.pri//评论说不要碰这个文件
  • html5applicationviewer.h//评论说不要碰这个文件
  • html5applicationviewer.cpp//评论说不要碰这个文件
  • main.cpp
  • index.html

  • 那么如何在C++中添加一个函数与浏览器进行通信,以及如何在浏览器中添加一个函数与C++进行通信呢?

    最佳答案

    This example旧但仍然有效,非常简单和干净。

    你也可以看看 qtwebkit-bridgetutorial .

    编辑

    添加一个名为 myclass.h 的文件

    #include "html5applicationviewer/html5applicationviewer.h"

    class MyClass : public Html5ApplicationViewer
    {
    Q_OBJECT
    public:
    explicit MyClass(QWidget *parent=0);
    private slots:
    void addToJavaScript();
    public slots:
    QString test(const QString &param);
    };

    添加一个名为 myclass.cpp 的文件
    #include <QDebug>
    #include <QGraphicsWebView>
    #include <QWebFrame>

    #include "myclass.h"

    MyClass::MyClass(QWidget *parent) : Html5ApplicationViewer(parent) {
    QObject::connect(webView()->page()->mainFrame(),
    SIGNAL(javaScriptWindowObjectCleared()), SLOT(addToJavaScript()));
    }

    void MyClass::addToJavaScript() {
    webView()->page()->mainFrame()->addToJavaScriptWindowObject("MyClass", this);
    }

    QString MyClass::test(const QString &param) {
    qDebug() << "from javascript " << param;
    return QString("from c++");
    }

    在您的 .pro添加
    SOURCES += main.cpp myclass.cpp
    HEADERS += myclass.h

    在您的 .html添加
    try {
    alert(MyClass.test("test string"));
    } catch(err) {
    alert(err);
    }

    在您的 main.cpp添加包括:
    #include "myclass.h"

    并改变:
    Html5ApplicationViewer viewer;

    到:
    MyClass viewer;

    关于qt - 如何使用 Qt HTML5 应用程序向浏览器发送数据或从浏览器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475794/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com