pypi312 / tkinter /TKINTER_USER_GUIDE.txt
PythonSTB's picture
Upload tkinter/TKINTER_USER_GUIDE.txt with huggingface_hub
a98d6ef verified
Raw
History Blame Contribute Delete
4.17 kB
================================================================================
TKINTER - USER GUIDE (Android Python STB) - Generated by RIMI
================================================================================
WHAT THIS IS
------------
tkinter 8.6.14 - the standard Python GUI toolkit (Tcl/Tk) for Android.
Each wheel is fully self-contained: the Tcl 8.6.14 + Tk 8.6.14 shared
libraries (the whole X11 client stack - Xau, Xdmcp, xcb, X11, Xext,
Xrender, Xss, Xft, fontconfig, expat, freetype, libpng - is statically
merged INSIDE libtk8.6.so), the _tkinter C extension for CPython 3.12,
the Tcl/Tk script libraries (incl. tzdata for the `clock` command), a
pruned X11 locale set, and a 2-font DejaVu subset with its own
fonts.conf. No other package is required (no dependencies).
tkinter-8.6.14-cp312-cp312-android_24_arm64_v8a.whl (real ARM64 phones)
tkinter-8.6.14-cp312-cp312-android_24_x86_64.whl (x86_64 emulators)
REQUIREMENT: COMPANION X SERVER
--------------------------------
Android has no X server of its own. Install the Termux:X11 companion app
and start it BEFORE creating any window. This wheel talks to it over TCP:
import os
os.environ["DISPLAY"] = "127.0.0.1:0" # Termux:X11 default TCP display
# os.environ["XAUTHORITY"] = ... # only if you enabled X auth
Unix-socket DISPLAY values (":0") can NOT work across Android app
sandboxes - always use the TCP form above.
INSTALL
-------
1. Install the wheel matching your device architecture via PipManager.
2. No extra packages, no TCL_LIBRARY/TK_LIBRARY setup: importing the
bootstrap module below wires everything to the bundled files.
QUICK START
-----------
import _tk_android # MUST come first: preloads libtcl/libtk,
# sets TCL_LIBRARY/TK_LIBRARY/XLOCALEDIR/
# FONTCONFIG_FILE, writes fonts/fonts.conf
import tkinter
from tkinter import ttk
root = tkinter.Tk() # needs Termux:X11 running + DISPLAY set
root.title("Hello Android")
ttk.Label(root, text="DejaVu via bundled fonts.conf").pack()
ttk.Button(root, text="Quit", command=root.destroy).pack()
root.mainloop()
HEADLESS Tcl (no display needed):
import _tk_android, _tkinter
t = _tkinter.create(None, None, "Tk", 0, 0, 0, 0, None) # wantTk=0
t.call("expr", "6*7") # -> '42'
t.call("info", "patchlevel") # -> '8.6.14'
API GOTCHAS
-----------
- `import _tk_android` first, in EVERY script (it only uses setdefault:
values you exported yourself still win).
- This wheel ships NO `tkinter/` package dir, so the app's stdlib
`tkinter/*.py` is always used; only the `_tkinter` extension (which the
app does not ship) comes from the wheel.
- Fonts: only DejaVuSans + DejaVuSans-Bold are bundled (1.4 MB). The
generated fonts.conf also lists /system/fonts as fallback, so device
Droid fonts remain reachable by family name.
- X11 locale data is pruned to C + en_US.UTF-8 + iso8859-1. Non-UTF8
locales and Compose tables for other languages are NOT included.
- `t.call("clock", ...)` timezones work: tzdata (609 files) is vendored.
- Tested surface (see Test_Tkinter.py, 10 checks, import-level only):
bootstrap import, env wiring, fonts.conf generation, bundled libs
present, _tkinter import, headless Tcl interp, patchlevel 8.6.14,
expr arithmetic, clock+tzdata, stdlib tkinter unshadowed. The GUI
window test is a later device phase (needs Termux:X11 on device).
VERSIONS INSIDE
---------------
Tcl/Tk 8.6.14 | xorgproto 2025.1 | xtrans 1.6.0 | xcb-proto 1.17.0 |
libXau 1.0.12 | libXdmcp 1.1.5 | libxcb 1.17.0 | libX11 1.8.13 |
libXext 1.3.7 | libXrender 0.9.12 | libXss 1.2.5 | libXft 2.3.9 |
libpng 1.6.58 | expat 2.8.4 | freetype 2.14.3 | fontconfig 2.18.3 |
DejaVu 2.37 (Sans + Sans-Bold) | CPython 3.12 | API 24+.
All 12 Termux Android patches applied; Xft enabled; PythonSTB-RIMI-Build.
================================================================================
Generated by RIMI
================================================================================