summaryrefslogtreecommitdiffstats
path: root/Doc/library/tkinter.rst
diff options
context:
space:
mode:
authorMark Roseman <mark@markroseman.com>2021-08-23 19:27:47 (GMT)
committerGitHub <noreply@github.com>2021-08-23 19:27:47 (GMT)
commite41912c6348362489d2514565a70782591f23902 (patch)
tree74d456166387de1cb86fc33ba6e0edf2b17253cd /Doc/library/tkinter.rst
parentdcbf7ff6a700b63e637a0445d68866670a398024 (diff)
downloadcpython-e41912c6348362489d2514565a70782591f23902.zip
cpython-e41912c6348362489d2514565a70782591f23902.tar.gz
cpython-e41912c6348362489d2514565a70782591f23902.tar.bz2
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>
Diffstat (limited to 'Doc/library/tkinter.rst')
-rw-r--r--Doc/library/tkinter.rst48
1 files changed, 9 insertions, 39 deletions
diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst
index c106cb8..a48bc13 100644
--- a/Doc/library/tkinter.rst
+++ b/Doc/library/tkinter.rst
@@ -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
---------------