繁体   English   中英

如何用 wxPython、PyQt、PySide 或 Tkinter 解释 Python?

[英]How is Python interpreted with wxPython, PyQt, PySide or Tkinter?

我很好奇,在过去的一个小时里一直在阅读有关使用 Python 进行 GUI 开发的内容。 在阅读了 wxPython、PyQt、诺基亚针对 Qt 的 Python 绑定以及 Tkinter 的文档后,我想到了一个问题。

当我用 Python 创建一个控制台应用程序时,它使用嵌入式 Python 解释器运行(我假设在我的例子中通常是 cpython,如果不是总是的话)。

所以我想知道,这些“小部件工具包”是怎么回事?

  • Python 代码是如何执行的,什么解释(或执行)它?

  • 我的 Python 代码的哪一部分是使用 Python 解释器解释的?

  • 还是对 Python 代码进行词法分析,然后由小部件的工具包进行解析,然后由小部件的工具包进行解释和执行(或在构建期间编译)?

我期待着了解与 Python 应用程序(更容易理解)与 Python 解释器的解释相比,后台发生了什么。

谢谢你。

附言。 无论哪个天才认为这个问题都值得结束; 很多人想知道外部库和系统的内部结构。 尤其是那些不像看起来那么简单的。 目前没有任何问题在 SE 上对此进行解释。

这只是关于“GUI 工具包”的真正概括的高级解释......

假设您决定使用 Qt 框架。 这个框架是用 C++ 编写的。 有两种不同的 python 绑定可以使用,允许使用 python 针对与 C++ 版本相同的 API 编写 GUI 应用程序。

python 绑定提供了对 C++ 代码的环绕调用。 PyQt4 例如使用sip ,而 PySide 使用shiboken 这些只是语言包装工具,它们采用规范来说明如何在 C++ 对象与其预期的 python 接口之间进行映射。

好的,那么你开始使用 PyQt ......你编写的所有代码都必须通过 python 解释器。 其中一些可能是纯 python。 其中一些将调用 C++ 库来创建诸如小部件之类的东西。 在 Qt 中,将有一个 C++ 指针与对应的 Python 实例相关联。

然后是 C++ 层与您平台的窗口管理器通信,将平台无关的 API 调用转换为平台特定的东西,比如如何精确地绘制按钮或菜单。

无论您创建的是仅控制台还是基于 GUI 的 Python 应用程序,它都会通过 Python 解释器来解释您的 Python 代码。 必须有东西为你解释 python 语言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM