为Python逻辑创建C ++ Qt Gui

时间:2019-01-27 10:15:34

标签: python c++ qt user-interface

向我介绍了需要为其创建GUI的Python逻辑。我想为此目的使用Qt,理想情况下,我希望在不使用Qt Creator的情况下使用C ++对其进行编程。

将C ++ Qt GUI和Python逻辑(可能与Python或C ++中的控制层)相结合的推荐方法是什么?

由于先前的研究,我知道某些工具,例如PySide,PythonQt,SWIG,Shiboken和其他工具(尽管到目前为止我还没有使用过),并且将* .ui文件导入Python非常简单,但是可能的方法数量不胜枚举,到目前为止,我还无法提出一个“好的解决方案”。

理想情况下,我使用Qt Designer,而是手动创建GUI(窗口,自定义窗口小部件,帮助程序类等),将它们组合成一个或几个类,这些类我暴露给Python / C ++控制层(通过包装程序?DLL?),用于管理GUI和逻辑之间的通信。

我该如何实现?

这个问题的简短版本可能是:如何使用具有Python逻辑的Qt C ++ GUI?

1 个答案:

答案 0 :(得分:-1)

您可以使用qt c ++创建GUI应用程序,并包装以嵌入python api的python api编写的控制逻辑。 https://docs.python.org/2/extending/embedding.html 但是,如果您有很多方法会很无聊,并且如果在c ++方面编写得不好,则可能会发生一些内存泄漏。

另一种解决方案可能是通过网络服务使用RPC调用python api(rest api / json rpc .... etc ...)。 Qt应用程序是python rest api的客户端。 像这样,您从python中拆分了c代码。您可以使用json rpc调用或其他API(例如jcon(https://github.com/joncol/jcon-cpp)来做到这一点。 您也将能够找到能够一起交谈的python和QT xml rpc api。

swig(http://swig.org)可能具有某些功能,但最好以其他方式使用:从python调用c func