Také by nebylo od věci zmínit se, pro které verze Pythonu lze kterou knihovnu použít.
Python3 není podporován mimo jiné knihovnami knihovnami PyGTK a wxPython, což tyto knihovny pro použití dosti diskvalifikuje.
S knihovnou Tkinter mám zase špatnou zkušenost, že nechává memory leaky, takže se nehodí pro dlouhodobě běžící aplikace.
(16-April-2017) wxPython 4.0.0a1 is now available on PyPI. This is the first official release of the new Phoenix version of wxPython, including support for Python 2.7 and 3.4+, installation from PyPI, fully self-contained and relocatable so it can be installed in virtual environments, etc.
S tim PyGTK se asi pletes:
1.1. Dependencies
GTK+3
Python 2 (2.6 or later) or Python 3 (3.1 or later)
gobject-introspection
Viz
https://python-gtk-3-tutorial.readthedocs.io/en/latest/install.html#dependencies
S knihovnou Tkinter mám zase špatnou zkušenost, že nechává memory leaky, takže se nehodí pro dlouhodobě běžící aplikace.
Tak to je drsny! Mas vic informaci? Leakuje to na strane Pythonu (predpokladam), nebo Tk? Python (temer) nepouzivam, ale vola z nej Julia obcas knihovnu PyPlot na grafy a nutno rict, ze tam to na pametovy veci chcipe casto. (Dokonce mam pocit, jestli to nevyhniva prave v Tkinteru, ale nevim.)
To neni dobre polozena otazka. Mam zkusenosti s PyQt, kde jsem zazil situaci, kdy bylo nutno u slozitejsi aplikace pretnout napojeni struktur na Qt objekty, aby garbage collector dokazal uvolnit pamet. To znamena, ze PyQt mi opravdu za nejakych okolnosti v nejake verzi leakovalo pamet, ale nikdy jsem to nestavel jako obecne tvrzeni "PyQt leakuje". Tkinter urcite vetsine lidi soustavne neleakuje, protoze by se to vedelo a davno opravilo. Mozna nekomu za nejakych okolnosti nejaka pamet utece, ale to by se musel ukazat nejaky use case.
A ze Ti "poblje" Python terminal chybovyma hlaskama, jeste neznamena, ze za to muze on, kdyz k nemu pristupujes pres interface z Julie.
Tkinter leakuje v případě, že jsou dynamicky dělány a zase rušeny stromy prvků. Už si nevzpomínám správnou terminologii, ale když v okně dělám rámečky a v každém spoustu tlačítek a labelů, nestačí zrušit ten rámeček jako celek, ale je nutno napřed porušit všechny vnitřní tlačítka a labely. Pokud se opravdu vše správně zruší, tak to neleakuje.
Ne ze bych miloval Tkinter, ale to s tim leakovanim je silne tvrzeni.
Co to je dlouhodobe bezici aplikace?
V mem pripade mesic na nejakem dotykovem displeji v tovarne je naprosto bez problemu.
Zrovna sem nacpu sve drobne zkusenosti, ovsem upozornuji, ze jsem velmi rozmazlen z klikacich prostredi pro Windows, tj. Delphi/Lazarus, respektive C# s WinForms:
* Tkinter - jakztakz, ale jak uz nekdo psal, komponenty nejsou zrovna kdovijaky luxus. Vzdycky me irituje, kdyz chci panel se scrollbary, tak ne ze si u panelu vyberu scrollbary zadne/horizontalni/vertikalni/oba, ale opravdu si tam ty scrollbary musim napsat a nastavit je tak, aby byly provazany s panelem. Jako chapu, ze to asi umoznuje ruzna nestandardni kouzla, ale me obvykle staci standardni scrollbary.
* PyQt - GPL nebo za penize, coz je pro meho zamestnavatele nepruchozi.
* wx... - Zatim jsem v tom delal pouze jednu drobnost zadarmo, ale docela dobry. Co se mi moc libilo (v meritkach opensource/free/atd...), tak to je wxFormBuilder, coz se docela blizi me davne lasce Delphi. (Ale jeste furt tomu chybi ta zakladni vec, ze po dvojkliku na event to skoci do editoru a muzu psat handler pro dany event.)
Ostatni knihovny jsem zatim nezkousel a zatim zkouset nehodlam. Mam jine konicky, nez je zkouseni GUI v Pyhonu.
Velku namahu pri zispovani moznosti ste si teda nedal, pretoze pre Qt je tu napriklad aj PySide, pre komercne pouzitie uplne bez problemv puzitelny - viem to lebo som do verzie 1.x pripravoval oficialne windows balicky a robil nejake bezvyznamne patche, uz sa tomu nevenujem ale viem ze od verzie 2 uz PySide oficialne patri pod Qt projekty a planuje sa jeho zaradenie do Qt ekosystemu, v buducnosti sa mozte teda tesit ze Python bude popri C++ dalsi podporovany jazyk priamo autorom kniznice Qt!