diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2021-08-23 20:08:19 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-23 20:08:19 (GMT) |
commit | e4795103025aeef295a8c5f75cc7c33801f93a24 (patch) | |
tree | 8b790053df8c5d0d07abeb0bed24fd685de58a68 /Doc | |
parent | f70936052012ac2be958cc57e2ebfc4568722531 (diff) | |
download | cpython-e4795103025aeef295a8c5f75cc7c33801f93a24.zip cpython-e4795103025aeef295a8c5f75cc7c33801f93a24.tar.gz cpython-e4795103025aeef295a8c5f75cc7c33801f93a24.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>
(cherry picked from commit e41912c6348362489d2514565a70782591f23902)
Co-authored-by: Mark Roseman <mark@markroseman.com>
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/tkinter.rst | 48 |
1 files changed, 9 insertions, 39 deletions
diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst index 3218653..f809db1 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 @@ -410,39 +413,6 @@ information on the Form geometry manager. :: pack .fred -side left =====> fred.pack(side="left") -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 --------------- |