bpo-42560: simplify/merge architecture info in Tkinter docs (GH-27839)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: E-Paine <63801254+E-Paine@users.noreply.github.com>
This commit is contained in:
Mark Roseman 2021-08-23 12:27:47 -07:00 committed by GitHub
parent dcbf7ff6a7
commit e41912c634
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 39 deletions

View File

@ -72,7 +72,7 @@ Architecture
------------
Tcl/Tk is not a single library but rather consists of a few distinct
modules, each with a separate functionality and its own official
modules, each with separate functionality and its own official
documentation. Python's binary releases also ship an add-on module
together with it.
@ -102,11 +102,14 @@ Ttk
Ttk is distributed as part of Tk, starting with Tk version 8.5. Python
bindings are provided in a separate module, :mod:`tkinter.ttk`.
Tix
`Tix <https://core.tcl.tk/jenglish/gutter/packages/tix.html>`_ is an older
third-party Tcl package, an add-on for Tk that adds several new widgets.
Python bindings are found in the :mod:`tkinter.tix` module.
It's deprecated in favor of Ttk.
Internally, Tk and Ttk use facilities of the underlying operating system,
i.e., Xlib on Unix/X11, Cocoa on macOS, GDI on Windows.
When your Python application uses a class in Tkinter, e.g., to create a widget,
the :mod:`tkinter` module first assembles a Tcl/Tk command string. It passes that
Tcl command string to an internal :mod:`_tkinter` binary module, which then
calls the Tcl interpreter to evaluate it. The Tcl interpreter will then call into the
Tk and/or Ttk packages, which will in turn make calls to Xlib, Cocoa, or GDI.
Tkinter Modules
@ -441,39 +444,6 @@ documentation for all of these in the
inherit from).
How Tk and Tkinter are Related
------------------------------
From the top down:
Your App Here (Python)
A Python application makes a :mod:`tkinter` call.
tkinter (Python Package)
This call (say, for example, creating a button widget), is implemented in
the :mod:`tkinter` package, which is written in Python. This Python
function will parse the commands and the arguments and convert them into a
form that makes them look as if they had come from a Tk script instead of
a Python script.
_tkinter (C)
These commands and their arguments will be passed to a C function in the
:mod:`_tkinter` - note the underscore - extension module.
Tk Widgets (C and Tcl)
This C function is able to make calls into other C modules, including the C
functions that make up the Tk library. Tk is implemented in C and some Tcl.
The Tcl part of the Tk widgets is used to bind certain default behaviors to
widgets, and is executed once at the point where the Python :mod:`tkinter`
package is imported. (The user never sees this stage).
Tk (C)
The Tk part of the Tk Widgets implement the final mapping to ...
Xlib (C)
the Xlib library to draw graphics on the screen.
Threading model
---------------