将Python控制台集成到GUI C++应用程序中
我打算在一些其他控件下面添加一个Python控制台小部件(放在C++的图形界面里):
很多类会被暴露给Python代码,包括一些对图形界面的访问(也许我会考虑用PyQt)。
我应该在一个单独的线程中运行Python代码吗?
我觉得这样做是个好主意,因为在执行长时间的命令时,图形界面不会卡住。不过另一方面,其他控件是不是应该禁用一下,以保持对象的状态,避免冲突呢?
1 个回答
14
看起来你想在一个Qt应用程序中嵌入Python解释器,使用Python作为脚本语言。我建议你看看PythonQt。
使用PythonQt模块,Python脚本可以和你主应用程序的图形界面(GUI)进行互动。
与PyQt和Qt Jambi不同,PythonQt并不是为了帮助开发者编写独立的应用程序而设计的。它的主要功能是嵌入一个Python解释器,并且专注于让应用程序的某些部分可以被Python访问。
如果我理解你的需求没错,那这就是你所需要的全部。
PyQt和PySide(由诺基亚官方支持)旨在通过提供绑定,让Python程序能够访问Qt的功能。
你可以在你的应用程序中嵌入PyQt(甚至是Qt应用程序),这样你的Python脚本就可以提供自己的图形界面,同时与应用程序的脚本API进行互动。
关于线程安全,Qt提供了一种线程安全的方式来发布事件,以及在不同线程之间的信号-槽连接。
参考资料: