Hmm zrovna se sešly články o tkinteru a ncurses. kdysi byly nějaké snahy používat tkinter i na konzolové aplikace (tedy něco, co umí například Python Prompt Toolkit), ale netuším, kam se to dostalo.
Na druhou stranu mít možnost dělat aplikace s GUI, které pěkně fallbacknou do terminálu, když je potřeba, by bylo fajne.
Popravdě, to textové rozhraní pro Anacondu bylo natolik specifické (podpora sériových terminálů na mainframech), že jsme to tenkrát (cca 2012) vyřešili trošku jinak.
TUI a GUI v Anacondě sdílí datový backend, ale mají vlastní definice vzhledu a používají jiné UI knihovny.
Pro TUI jsem z toho důvodu tenkrát napsal knihovnu simpleline:
https://github.com/rhinstaller/python-simpleline
Ale koukám, že ji kluci od té doby částečně přepsali a není už tak deklarativní jak kdysi bývala.
A pozicování textu k pevnému budu, třeba ve srovnání se svg? Kde ve vertikálním směru se rozlišuje vršek, spodek, střed fontu, střed písma, účaří? Rotace, psaní na křivku? Mně se líbí že tkinter nezabírá moc místa a je součástí pythonu, ale obávám se omezení. Dneska se mi jeví bezpečnější vykreslovat gui přes webový engine, ideálně přes websockets, kdy pak může aplikace běžet i vzdáleně na pc a gui třeba na tabletu, nebo přímo na tabletu, kdy python běží v termuxu a gui ve webovém prohlížeči. Je to asi jediný způsob, jak mít na na androidu python s gui, ale zase se to obtížně spouští a mimo android to bude obtížně akceptovatelné. Je to složitý.
1. pozicování se řídí přes "anchor" a specifikuje se relativně vůči center, n, s, e, w, ne atd. (jako na kompasu). Celý ten text je chápán jako (natočený) obdélník, vůbec se tedy nedá řešit účaří atd. Mě to pro ten specifický CAD stačilo, ale může se objevit případ, kdy toto nemusí plně dostačovat.
2. je možné specifikovat zarovnání textu, který zabírá víc řádků, tj. má někde \n (což je hodně užitečné)
3. text na křivku IMHO neumí (btw je to k něčemu?)
Omezení tkinteru jistě je - podobně jako u naprosto všech GUI toolkitů (každý má to omezení jiné). Na druhou stranu pro některá zadání je tkinter docela ideální řešení, například ve chvíli, kdy se tvoří aplikace pro firemní prostředí s nějakými starodávnými prohlížeči, kde půlka nových webových standardů nefunguje. A samozřejmě ve chvíli, kdy uživatelé vyžadují "desktop experience".