我使用的是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
}
任何人都可以帮我吗?
答案 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/