因此,如果您不能仅使用纯 Python 制作 GUI,Tkinter 是如何做到的?

So if you can't make GUI's with just pure Python, how does Tkinter do it?

所以,我一直想为 Python 3 创建自己的 GUI 库。但我找不到任何关于从哪里开始的东西。所以我决定在这里问这个问题。 目标: 能够在不使用其他库的情况下制作 Python 个库。

编辑:

所以,如果我要用 C 为 Python 创建一个库。我该怎么做。

Tkinter 是 python 对 tcl/tk 的 GUI 工具包的包装,类似于 PySide/PyQt 和 wxPython 是对 Qt 和 Wx C++ GUI 工具包的包装。

如果您想从头开始构建自己的 API,则必须利用现有的操作系​​统 API and/or 使用 OpenGL 等跨平台的东西。对于后者的一个很好的例子,您可以查看基于 OpenGL

构建的 Kivy

不同的操作系统有不同的 API 用于执行 GUI。所以 如何 你必须这样做在很大程度上取决于操作系统。我认为 Python 使用 Tkinter 的原因之一是因为它已经移植到不同的操作系统。

GUI API 通常作为 共享库 提供,通常用 C 编写或与 C 兼容。

如果您想使用来自 Python 的那些,您必须为它们编写一个 Python 包装器。例如使用 ctypes。这样做需要对 (1) Python、(2) ctypes 和 (3) 有问题的 GUI API 有深刻的理解。如果这些技术中不止一项对您来说是新的,我不建议您接手这样的项目。