使用Python的大口似乎是一个不错的选择。SWIG仍在积极维护。
虽然SWIG并不能完全满足我所有的要求,但要让它们都发挥作用并不是件大事:
脚本代码可以在QT-Application中执行.
这是不受支持的盒子。您必须在应用程序中嵌入python解释器。https://docs.python.org/2/extending/embedding.html
用户可以通过脚本语言访问文件系统、网络和创建图形元素.
访问文件系统和网络不应该是python的问题。要创建图形用户界面,有许多可用的库:
https://wiki.python.org/moin/GuiProgramming
用户可以通过绑定访问我的QT应用程序的公共api。应该有一个生成器可以为我的公共api自动生成脚本语言绑定。这是通过大口喝。它们提供了很好的C++和c++11支持。
http://www.swig.org/Doc3.0/SWIGPlus.htmlhttp://www.swig.org/Doc3.0/CPlusPlus11.html对于属于Public的类,应该可以在和脚本引擎之间传递对象。
这可以使用swig提供的c++函数:
SWIG_TypeQuery获取有关C++类型的信息。SWIG_NewPointerObj将c++对象转换为python (代理)对象SWIG_ConvertPtr将python (代理)对象转换为c++对象外部运行时章节中的更多信息