python写gui、主体程序必须放进函数里吗_用c++和python写GUI程序(python嵌入方式)...

本文介绍了如何使用C++嵌入Python来编写GUI程序,利用boost.python库,实现C++调用Python的GUI界面,并详细展示了从Python GUI界面的创建到C++调用Python函数的完整过程,包括代码示例和注意事项。
摘要由CSDN通过智能技术生成

用python写GUI相比C++好处多多:语法简洁灵活,不用编译,自动垃圾回收,等等。很让我这个c++程序员眼红,自然要好好研究一下。

如果用纯python的方式很简单,qt或者wxwidget这个两个GUI库的python版本都已经很成熟,直接拿来用就行了。但在一些核心逻辑是由c来完成的项目里,就需要结合c和python来做GUI程序。c+python做GUI程序是有点麻烦的。通常采用的是extending方式,也就是用c++写python的扩展模块,提供一系列接口来供python调用。但是这样的方式有一些缺点,一是c模块的编译比较麻烦,二是如果已有的c++代码不是很规范,要归纳出一套易用的接口是不太容易的。

所以就希望用python嵌入(embedding)c的方式:主程序还是c程序,将python写的界面嵌入到c程序中,在事件触发时python方面只要调用一下相应的c++函数就可以完成逻辑的处理。省去了编译python模块的麻烦。而且主程序是c写的,编译出二进制的可执行程序比直接给一个python脚本去执行给用户的体验也要好一点。。。研究了几天(本人是python新手)总算是总结出一套用Cpp + python写GUI界面的方法。

本文假定你已经能够熟练使用c/c++语言。并且至少能用python写一些简单的GUI程序。如果你希望编译运行本文给出的列子,你的环境需要配置好python,pyside,boost.python(这玩意的编译很烦人囧)

这里使用boost.python来实现python的嵌入。其实用python的C API也不是不可以,但是在导出python模块的时候boost要方便许多,可以少打

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值