如何使用 QT/python 从 Javascript 调用 C++ 函数?
Posted
技术标签:
【中文标题】如何使用 QT/python 从 Javascript 调用 C++ 函数?【英文标题】:how to invoke C++ functions from Javascript using QT/python? 【发布时间】:2013-09-30 09:12:40 【问题描述】:我有一个嵌入式系统,它的 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 示例.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()。
函数计算()
/** 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');
我怎样才能完成上述任务?这个例子可以针对回调部分做进一步的阐述。这样,调用 C++ 函数来注册回调和其他函数就变得很方便了。请举例说明?
【问题讨论】:
【参考方案1】:在您的 javascript 中使用内联 C++ 代码,文件 cpp2js.js 中提供了一个方法 cpp2js(code , callback)。在您的网页中包含此文件:
<script type='text/javascript' src="cpp2js.js"></script>
Inline C++ functions in Javascript
【讨论】:
所以,如果我有一个包含所有 C++ 函数和 html / java 脚本中的 UI 的中间件。那我需要在中间件库上运行cpp2js工具还是需要在哪里运行这个工具?由于我必须将中间件中的 C++ 函数与 UI 链接起来。 cpp2js 是一个示例,您可以如何实现 - 仔细阅读以了解您将如何调用。您还没有发布任何代码。我的信息很少。但重点是在 *.js 文件中编写 cpp 代码,在您的 Html 代码中将其调用为 我已按照您的说明添加了示例。希望,我现在会得到更好的回应。谢谢!以上是关于如何使用 QT/python 从 Javascript 调用 C++ 函数?的主要内容,如果未能解决你的问题,请参考以下文章
用于 Qt 4、Python 3 的 matplotlib 小部件