将 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++ 应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

将现有程序集成到新的 GUI

MFC:修复 GUI 上的控制台

将两个 Python 脚本集成为一个?

在 Python GUI 中嵌入 C++ 程序

如何在 Windows GUI 应用程序中将嵌入式 Python 连接到控制台的 I/O?

Tkinter 用窗口打开控制台窗口