Názory k článku Složitější ovládací prvky ve frameworku PySide: tabulky a stromy

  • Článek je starý, nové názory již nelze přidávat.
  • 13. 2. 2018 13:51

    Wavelet

    Chtěl bych se zeptat, jestli aktivně používáte PyQt/PySide v práci. Pokud ano, zajímal by mne v čem je pro vás "nativní" GUI zajímavější než webové. Taky by mne zajímalo, jak řešíte složitější aplikaci, zejména tedy stav komponent a vůbec celé aplikace. V příkladech vypadají signals/slots jednoduše, ale z vlastní zkušenosti vím, že to začíná být od určité složitosti sranda.
    Díky za články!

  • 13. 2. 2018 18:53

    y (neregistrovaný)

    Nie som síce autor, ale: pokiaľ to technológia umožňuje (WPF, QML), tak sa používajú bindingy v nejakej forme z View, ktoré sa "odchytávajú" v ModelView. Čo sa týka architektúry, tak sa odporúča MVVM (WPF, QML), ak nie, tak treba ísť smerom MVP. (MVC je cesta do pekla, lebo potom je View zlepený s Model-om).

  • 13. 2. 2018 20:16

    Pavel Tišnovský
    Zlatý podporovatel

    Dobrý den.

    PySide (a k tomu Tkinter) používám v jednom aktuálně vyvíjeném projektu. Jedná se o specializovaný CAD, který je propojený s databází a také s dalším informačním systémem. Je k tomu i webová část (jen prohlížečka výkresů s možností filtrace entit atd.), takže můžu obě technologie porovnat :-) Samozřejmě má všechno své klady a zápory.

    1) web-UI: mnohem jednodušší design (v podstatě ho moc neřeším, je to nepatrně upravenej bootstrap, změna uspořádání widgetů je otázka na pár minut s live-náhledem na vývojové mašině). Na druhou stranu - zrovna u vektorové grafiky se ukazuje pomalost použitých technologií. Mám to postavené na Raphael JS, kvůli podpoře prohlížečů včetně IE, a tam se výkres s pouhými 5000 entitami (což je "nic") vykresluje přes dvě sekundy. Navíc je v té chvíli prohlížeč mrtvý - někdy nereagují další taby atd. Možná by bylo řešením nestavět to na SVG/VML, ale na canvasu, možná v další verzi :-) Kvůli tomu tam mám fallback na rendering na serveru (přenáší se výsledný rastrový obrázek, což kupodivu není tak zlé, jak to zní). [a jen zcela osobní věc na straně záporů - moc se mi nechce psát větší kódy v JS, nervy mám jen jedny :-)].

    2) desktopové UI: spousta widgetů se dá upravit přesně tak, jak to vyžadují uživatelé, v tomto je PySide dost dobrý. Rychlost neřeším, je více než dostatečná pro všechny požadované operace. Určitě je + mnohem vymazlenější ladění. Co je problém - určitě nutnost řešit problémy na desktopech klientů.

    Ale ono se to bude lišit projekt od projektu. V práci děláme typickou webovou appku a tam se díky striktnímu oddělení UI od logiky mnohem lépe testuje, jednu nebo druhou stranu jde pěkně mockovat atd. atd.