]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-42560: simplify/merge architecture info in Tkinter docs (GH-27839)
authorMark Roseman <mark@markroseman.com>
Mon, 23 Aug 2021 19:27:47 +0000 (12:27 -0700)
committerGitHub <noreply@github.com>
Mon, 23 Aug 2021 19:27:47 +0000 (21:27 +0200)
Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
Co-authored-by: E-Paine <63801254+E-Paine@users.noreply.github.com>
Doc/library/tkinter.rst

index c106cb8328c206052350df2790fd0ee04db6f885..a48bc13c8b436baf93ac83142f990498b552fb6a 100644 (file)
@@ -72,7 +72,7 @@ Architecture
 ------------
 
 Tcl/Tk is not a single library but rather consists of a few distinct
-modules, each with 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
 ---------------