首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为Qt应用程序提供脚本支持?

如何为Qt应用程序提供脚本支持?
EN

Stack Overflow用户
提问于 2015-05-27 11:37:55
回答 1查看 2.1K关注 0票数 8

我正在寻找一种可以集成到我的Qt5应用程序中的脚本语言。应用程序有一个公共api,它可以用来用插件扩展应用程序。现在,我想向应用程序添加一种脚本语言,它提供了对整个公共api的访问。脚本语言必须满足以下需求

  • 脚本代码可以在QT-Application中执行.
  • 用户可以通过脚本语言访问文件系统、网络和创建图形元素.
  • 用户可以通过绑定访问我的QT应用程序的公共api。
  • 应该有一个生成器可以为我的公共api自动生成脚本语言绑定。
  • 对于属于Public的类,应该可以在和脚本引擎之间传递对象。

我评估了以下脚本语言:

  • QT-脚本,以及QT脚本生成器. 脚本语言基于ECMAScript/Javascript,可以很容易地集成到QT应用程序中。这满足了我的所有要求,并按预期工作。生成器可用于为QT本身生成绑定,并为我的应用程序的公共api生成绑定。遗憾的是,qt-script模块将是使用qt5.5的废弃的,而脚本生成器是,不再维护
  • Python 似乎有几个python绑定可用。 Pyside可能没问题,但它似乎也是不活动的。除此之外,我还必须将python嵌入到c++中,这不是pyside直接支持的,而是可以由python完成的。

您建议使用什么脚本语言和工具来满足我的所有需求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-16 10:11:14

使用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.html
  • http://www.swig.org/Doc3.0/CPlusPlus11.html

对于属于Public的类,应该可以在和脚本引擎之间传递对象。

这可以使用swig提供的c++函数:

  • SWIG_TypeQuery获取有关C++类型的信息。
  • SWIG_NewPointerObj将c++对象转换为python (代理)对象
  • SWIG_ConvertPtr将python (代理)对象转换为c++对象

外部运行时章节中的更多信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30481342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档