Phi*_*hil 1 python user-interface wxpython tkinter pyside
我很好奇并且在过去一小时内一直在阅读使用Python进行GUI开发的内容.在阅读wxPython文档,PyQt,诺基亚Qt的Python绑定以及Tkinter之后,我想到了一个问题.
当我使用Python创建一个控制台应用程序时,它使用嵌入式Python解释器运行(我假设通常不是总是在我的情况下cpython).
所以我想知道,这些"小工具包"是什么情况?
如何执行Python代码以及解释它(或执行它)的代码?
我的Python代码的哪一部分是使用Python解释器解释的?
或者Python代码是否经过词法分析,然后由小部件的工具包解析,然后解释并执行(或在构建期间编译)?
我期待通过Python解释器与Python应用程序(稍微简单易懂)的解释相比较,了解后台发生的事情.
谢谢.
PS.无论哪个天才都认为这个问题值得关闭; 很多人都想知道外部库和系统的内部结构.特别是那些不像它们看起来那么简单的东西.目前在SE上没有任何问题可以解释这一点.
这只是关于"GUI工具包"的一个非常普遍的高级解释......
假设您决定使用Qt框架.该框架是用C++编写的.可以使用两种不同的python绑定,允许用python中的GUI应用程序编写与C++版本相同的API.
python绑定提供了对C++代码调用的包装.例如PyQt4使用sip
,而PySide使用shiboken
.这些只是语言包装工具,它们规范了如何在C++对象和它们预期的python接口之间进行映射.
好的,所以你开始使用PyQt ...你编写的所有代码都必须通过python解释器.其中一些可能是纯蟒蛇.其中一些将调用C++库来创建像小部件一样的东西.在Qt中,将有一个与python实例对应关联的C++指针.
然后是C++层与平台的窗口管理器进行通信,将与平台无关的API调用转换为特定于平台的内容,例如如何精确绘制按钮或菜单.
无论您是仅创建一个控制台还是基于GUI的python应用程序,它都会通过python解释器来解释您的python代码.有些东西必须为你解释python语言.