java 嵌入qtwebkit,在QtWebkit中,如何安装从C ++到Javaobject窗口的回调?

I have implemented the HTML-JS, this calls the C++ method from the JS using QtWebkit. I am able to do it successfully. Now, I want to send a callback to JavaScript window from the C++ method. How can I do so?

Here is my code.

#include

#include

#include

#include

#include

#include

class MyJavaScriptOperations : public QObject {

Q_OBJECT

public:

Q_INVOKABLE qint32 MultOfNumbers(int a, int b) {

qDebug() << a * b;

return (a*b);

}

};

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

QWebView *view = new QWebView();

view->resize(400, 500);

view->page()->mainFrame()->addToJavaScriptWindowObject("myoperations", new MyJavaScriptOperations);

view->load(QUrl("./shreyas.html"));

view->show();

return a.exec();

}

#include "main.moc"

The Java script is here.

function Multiply()

{

var result = myoperations.MultOfNumbers(document.forms["DEMO_FORM"]["Multiplicant_A"].value, document.forms["DEMO_FORM"]["Multiplicant_B"].value);

document.getElementById("answer").value = result;

}

Multiplicant A:

Multiplicant B:

Result :

解决方案

I don't know if you can somehow call a JS callback directly, but in a pinch you could use your main frame's evaluateJavascript() method to call some JS from C++.

Or you can connect to signals from the JavaScript side, see Qt QWEBview JavaScript callback for some ideas.

A good overview over the connection mechanisms can also be found in the Qt docs

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值