Portál AbcLinuxu, 6. května 2025 03:05
Poté co Nokia pohřbila projekt mobilního operačního systému MeeGo, zastavily se také práce na projektu PySide. Jedná se o propojení Pythonu a grafických knihoven Qt. Mělo jít o hlavní vývojové prostředí aplikací určených pro systémy MeeGo a Symbian. Na rozdíl od konkurenčního PyQt, dostupného pod komerční nebo GPL licencí, je PySide dostupné pod LGPL a umožňuje tedy vývoj uzavřených aplikací.
Od doby, co Nokia přestala projekt PySide financovat, vývoj stagnuje. PySide ve verzi 1.x podporuje pouze Qt4. Podpora Qt5 přijde až s verzí PySide2, ale práce na ní probíhá velmi pomalu. To by se nyní mělo změnit. Firma Qt Company (dříve Digia) hodlá převzít projekt PySide pod svá křídla, zajistit jeho kompatibilitu s aktuální verzí Qt a integrovat jej do struktur Qt Projektu. Firma rozeslala e-mail, ve kterém žádá přispěvatele do projektu, aby podepsali souhlas s komerčním licencováním jejich kódu. PySide bude licencován stejně jako zbytek Qt, tj. pod komerční i svobodnou LGPL licencí.
Tiskni
Sdílej:
Úplně jsem nepochopil, k čemu to je dobrý. Díky tomu můžu nahradit v QML JavaScript Pythonem? Nebo jak to funguje?Ne úplně, ale tak daleko od pravdy to taky není - PyOtherSide umoňuje z pomocí Python QML elementu volat z QML Pythoní kód. Volání může být jak synchronní tak plně asynchronní a Pythoní kód také může zpět do QML posílat signály. Prostě taková celkem lehká ale dost mocná RPC vrstva. Mezi hlavní výhody patří možnost plně asynchronní komunikace Python<->Qt/AML, rychlý start (QML aplikace startuje jako první a Python si asynchronne načte až potřebuje) a celkově malou velikost zdrojového kódu (PySide byl kolikrát problém vůbec skompilovat). Mezi nevýhody může teoreticky pro někoho patřit to, že se nejedná o klasické bindingy které obalují všechny třídy v Qt ale opravdu jen lehkou RPC vrstvu mezi Pythonem a QML. Osobně jsem s tím však zatím neměl v mých projektech problém. Nejlepší je asi podívat se na příklady nebo do dokumentace jak se to používá.
Úplně si nejsem jistý, kde PySide dneska použít.PyOtherSide je k dispozici v repositářích minimálně Fedory, Debianu a Ubuntu a pravděpodobně i dalších distribucí. Co se mobilních platforem týče je možné PyOtherSide použít pro tvorbu aplikací minimálně pro SailfishOS (Jolla) a pro Android.
Všetky tie príklady sú Python, takže dosť pochybujem, že sa ako prvý nenačítava práve Python.Koukni třeba na ten notes example: Pouští se to pomocí:
qmlscene notes_example.qml
Je pravda, že to možná natáhne libpython nebo něco takového. A i to by se dalo pořešit kdyby to byl problém - stačí ten import (import io.thp.pyotherside 1.0) a vytvoření Python elementu hodit do samostatného QML souboru, který se načte, až když je Python potřeba. A podobně to jde dělat i s aplikačním kódem díky podpoře asynchroního načítání pythoních modulů.
Celkově hlavní výhoda je, že to vůbec jde udělat - klasické bindingy pokud vím nejen, že vždy natáhnou Python, ale i tisíc šilených wrapperu pro všemožné Qt třídy čistě pro jistotu - kdyby je tvůj kód náhodou chtěl použít. Už jen ve velikosti binárek tam byl dost velký rozdíl: asi 6-7 MB pro PySide vs 150 kB pro PyOtherSide.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.