将Python控制台集成到GUI C ++应用程序中

时间:2010-01-10 19:26:10

标签: c++ python multithreading user-interface integration

我将在一些其他控件下面添加一个python控制台小部件(到C ++ GUI中): Python Console screenshot

很多类都会暴露给python代码,包括对GUI的一些访问(也许我会考虑PyQt)。

  

我应该在一个单独的线程中运行Python代码吗?

我认为这是一个很好的方法,因为在执行长命令时不会冻结GUI。但另一方面,是否应禁用其他控件来保留对象的状态并避免冲突?

1 个答案:

答案 0 :(得分:13)

由于您显然希望嵌入Python解释器以将Python用作Qt应用程序中的脚本语言,因此我建议您查看PythonQt

使用PythonQt模块,Python脚本将能够与主机应用程序的GUI进行交互。

  

与PyQt和Qt Jambi不同,PythonQt并非旨在为编写独立应用程序的开发人员提供支持。相反,它提供了嵌入Python解释器的工具,并专注于使应用程序的部分内容易于暴露给Python。

如果我理解你的需要,那就是你所需要的。

PyQtPySide(由诺基亚官方支持)旨在通过提供绑定从Python程序访问Qt功能。

可以在您的应用程序中嵌入PyQt(even a Qt application),并且您的Python脚本将能够在与应用程序脚本API交互时提供自己的GUI。

关于线程安全性,Qt提供了一种线程安全的方式来发布事件和跨线程的信号槽连接。

参考文献: