将 Python 控制台集成到 GUI C++ 应用程序中
Posted
技术标签:
【中文标题】将 Python 控制台集成到 GUI C++ 应用程序中【英文标题】:Integration of Python console into a GUI C++ application 【发布时间】:2011-01-03 12:57:48 【问题描述】:我将在其他一些控件下方添加一个 python 控制台小部件(到 C++ GUI 中):
许多类都将暴露给 python 代码,包括对 GUI 的一些访问(也许我会考虑 PyQt)。
我应该在单独的线程中运行 Python 代码吗?
我认为这是一个很好的方法,因为在执行长命令时 GUI 不会被冻结。但另一方面,不应该禁用其他控件以保留对象的状态并避免冲突吗?
【问题讨论】:
仅图片就值得+1。不过,这个问题也很好。 是的,这张照片有点鼓舞人心! 【参考方案1】:由于您显然希望嵌入 Python 解释器以在看似 Qt 的应用程序中使用 Python 作为脚本语言,我建议您查看PythonQt。
使用 PythonQt 模块,Python 脚本将能够与主机应用程序的 GUI 进行交互。
与 PyQt 和 Qt Jambi 不同,PythonQt 并非旨在为编写独立应用程序的开发人员提供支持。相反,它提供了嵌入 Python 解释器的工具,并专注于使应用程序的某些部分更容易暴露给 Python。
如果我正确理解了您的需求,那就是您所需要的。
PyQt 和PySide(诺基亚官方支持)旨在通过提供绑定从 Python 程序访问 Qt 功能。
可以将 PyQt 嵌入您的应用程序 (even a Qt application),您的 Python 脚本将能够在与您的应用程序脚本 API 交互时提供自己的 GUI。
关于线程安全,Qt 提供了一种线程安全的方式来发布事件,以及跨线程的信号槽连接。
参考资料:
Embedding Python into Qt Applications。 Notes for embedding python in your C/C++ app EmbedingPyQtTutorial【讨论】:
以上是关于将 Python 控制台集成到 GUI C++ 应用程序中的主要内容,如果未能解决你的问题,请参考以下文章