如何使用QT / python从Javascript调用C ++函数?

时间:2013-09-30 09:12:41

标签: javascript c++ python qt

我有一个嵌入式系统,其GUI是使用html开发的。在里面,HTML,我正在写javascripts。现在,如何使用QT从Javascript调用C ++函数 - 中间件?我听说QT是从Javascript调用C ++函数的最简单方法。有没有任何例子,从JAVA SCRIPT调用C ++函数。我是python的新手,python是否提供此功能?例子对我有所帮助。请通过示例解释我。此外,内部机制 - 从Javascript调用C ++将是有帮助的。请忽略我的python部分,如果我听起来很奇怪。因为我对python完全不熟悉。我真的没有它的力量。

让我们说,我在CPP中有中间件 - 仅用于演示目的只有一个文件。

#include "stdio.h"

class Sample
{

 private:

   int net_value;


public:


  Sample()
  {

    printf("constructor called\r\n");

  }



 void set_value()
  {
    net_value = 10;

  }


};

我编译如下。

gcc -c -fPIC sample.cpp

gcc --shared sample.o -o libmysample.so

现在,我的HTML文件。

<html>
 <head>
  <script type="text/javascript">
function calculate() 
{ 
alert('You clicked the top text'); 
}

function functionTwo() 
{ alert('You clicked the bottom text'); 

}
  </script>
 </head>
<body>

<form action="http://136.170.195.17/cgi-bin/jordan_cgi.cgi">
<h1> Enter the First Equation </h1>
<input type=text name=val1 size=1>
X

+
<input type=text name=val2 size=1>
Y

+
<input type=text name=val3 size=1>
Z
=
<input type=text name=val4 size=1>
<h1> Enter the Second Equation </h1>
<input type=text name=val11 size=1>
X

+
<input type=text name=val12 size=1>
Y

+
<input type=text name=val13 size=1>
Z
=
<input type=text name=val14 size=1>

<h1> Enter the Third Equation </h1>
<input type=text name=va2l1 size=1>
X

+
<input type=text name=va2l2 size=1>
Y

+
<input type=text name=va2l3 size=1>
Z
=
<input type=text name=va2l4 size=1> <br>
<br>
<div><input type="submit" value="Compute!"></div>
</form> 

 </body>
</html>

现在,我的兴趣是从JAVASCRIPT函数调用void set_value()。

函数calculate()     {

  /** First instantiate Sample class and then invoke the set_value
 ---> Here I want to invoke set_value() -> remember the set_value is in the 
 .so file.  **/

alert('You clicked the top text'); 
}

如何完成上述任务?可以针对Callback部分进一步详细说明此示例。这样,调用C ++函数来注册回调和其他函数变得很方便。请举例说明这个?

1 个答案:

答案 0 :(得分:0)

在javascript中使用内联C ++代码,cpp2js.js文件中提供了cpp2js(code {,callback})方法。在您的网页中包含此文件:

<script type='text/javascript' src="cpp2js.js"></script> 

Inline C++ functions in Javascript