使用结构/对象参数从QT调用JavaScript回调

时间:2017-06-14 04:05:00

标签: javascript qt5.5

我使用的是QT 5.5版本。

我需要从结构/对象作为参数的QT插件调用javascript回调函数。我无法修改HTML应用程序,因为它不在我们的范围内。

HTML应用程序代码段

var obj1 = document.getElementById('obj1_id'); //QT plugin object 1
var obj2 = document.getElementById('obj2_id'); //QT plugin object 2
obj2.init(obj1,callback); //QT API
function callback(arg1)
{
if ( obj1 === arg1){
// SUCCESS
else
// FAILURE
}

QT插件代码段

class::init(QWebElement obj, QString callback)
{
    //need to Invoke callback with obj argument
}

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

使用Qt信号和插槽 -

在你的javascript函数中 -

添加以下行 -

myoperation.alert_script_signal.connect(回调);

在基于Qt框架的C ++类 - 构造函数中,添加以下行 -

注册您的Javascript回调 -

view-> page() - > mainFrame() - > addToJavaScriptWindowObject(“myoperation”,this);

//现在从该Qt类中的某个方法调用回调。

发出alert_script_signal();

你需要了解QtWebkit是平台的一件事。所以,基本上,html,javascript正在Qt Webkit上运行。

我有一些例子 - http://www.tune2wizard.com/linux-qt-callback-from-c-to-the-javascript-function/