【问题标题】:Qt Webkit Bridge: Call C++ functions with javascriptQt Webkit Bridge:使用 javascript 调用 C++ 函数
【发布时间】:2015-05-10 10:50:34
【问题描述】:

您好,我使用 QT5 用 QtCreator 制作了一个 HTML5 应用程序。

我的 main.cpp 如下所示:

#include <QApplication>
#include "html5applicationviewer.h"

#include "sqlfunctions.h"

int main(int argc, char *argv[])
{
    sqlfunctions* obj = new sqlfunctions;

    QApplication app(argc, argv);

    Html5ApplicationViewer viewer;
    viewer.setOrientation(Html5ApplicationViewer::ScreenOrientationAuto);
    viewer.showExpanded();
    viewer.loadFile(QLatin1String("src/index.html"));
    viewer.setFixedSize(1200, 900);

    return app.exec();
}

我想要实现的是调用 C++ 函数来操作 SQL 数据库,例如当用户单击按钮时。

所以基本上我需要类似下面的东西(jQuery-shorthand):

$(document).ready(function(){
    $("#button").click(function(){
        mycppfunction();
    });
};)

我已经阅读了文档和这个thread 关于问题和方法addToJavascriptWindowObject()。但是,由于我没有QWebViewQWebFrame,我如何才能真正实现相同的功能,或者重建应用程序以按描述工作。

【问题讨论】:

  • Html5ApplicationViewer 类应该包含 QWebFrame 或类似的,你已经看过这个类了吗?
  • 我似乎找不到任何文档:(
  • 看看它的头文件怎么样?
  • 由于您根据to your follow up question找到了相关代码,您可能想在这里发布答案。

标签: javascript c++ qt


【解决方案1】:

为了完成这项工作,您要添加的代码如下

QWebFrame *frame = viewer.webView()->page()->mainFrame();
QString objJavascriptName = "myObj";
frame->addToJavaScriptWindowObject(objJavascriptName, &obj);

Html5ApplicationViewer viewer;之后添加这个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2012-11-16
    • 1970-01-01
    相关资源
    最近更新 更多