2017-06-14 76 views
0

我正在使用QT 5.5版本。使用结构/对象参数从QT调用JavaScript回调

我需要从结构/对象作为参数从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 
} 

任何一个可以帮助我在这?

回答

0

使用Qt信号和槽 -

在你的JavaScript函数 -

添加以下行 -

myoperation.alert_script_signal.connect(回调);

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

注册您的JavaScript回调 -

查看 - >页面() - >框() - > addToJavaScriptWindowObject(“myoperation “, 这个);

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

emit alert_script_signal();

你需要了解一件QtWebkit是这里的平台。所以,基本上,HTML,JavaScript在Qt Webkit上运行。

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

+0

在这里,我不能修改的JavaScript功能,因为HTML应用程序是不是在我们的范围 – Anjana