我将在一些其他控件下面添加一个python控制台小部件(到C ++ GUI中):
很多类都会暴露给python代码,包括对GUI的一些访问(也许我会考虑PyQt)。
我应该在一个单独的线程中运行Python代码吗?
我认为这是一个很好的方法,因为在执行长命令时不会冻结GUI。但另一方面,是否应禁用其他控件来保留对象的状态并避免冲突?
答案 0 :(得分:13)
由于您显然希望嵌入Python解释器以将Python用作Qt应用程序中的脚本语言,因此我建议您查看PythonQt。
使用PythonQt模块,Python脚本将能够与主机应用程序的GUI进行交互。
与PyQt和Qt Jambi不同,PythonQt并非旨在为编写独立应用程序的开发人员提供支持。相反,它提供了嵌入Python解释器的工具,并专注于使应用程序的部分内容易于暴露给Python。
如果我理解你的需要,那就是你所需要的。
PyQt和PySide(由诺基亚官方支持)旨在通过提供绑定从Python程序访问Qt功能。
可以在您的应用程序中嵌入PyQt(even a Qt application),并且您的Python脚本将能够在与应用程序脚本API交互时提供自己的GUI。
关于线程安全性,Qt提供了一种线程安全的方式来发布事件和跨线程的信号槽连接。
参考文献: