Hlavní navigace

Wome... is your fwiend! - Články označené nálepkou python

Modellerkit: dva příklady

Znáte sandman? Ten mě inspiroval k vytvoření jednoduché ukázky modellerkitu. Abych připomněl o co jde: Chci systém, pro tvorbu uživatelských rozhraní, ve kterém při změně dat nemusím říkat: Zaktualizuj to tady a tady, pak přepočítej tamto, a zobraz to. Naopak, jak je v MVC zvykem, při změně dat (čili modelu) ta data řeknou: Změnili jsme se!, a kdo poslouchá, ten může patřičně reagovat. Jestli chcete, projděte si detaily…
31. 8. 2014 17:51 | dev modellerkit python

Modelujeme s deskriptorem

Cítím jistou potřebu napsat, jak celá věc s modelováním pokračuje, ikdyž teď v létě mám poněkud méně času, než jsem myslel. Tentokrát ani nebudu dávat odkaz na předchozí díl, jen připomenu o co se snažím: Udělat v Pythonu takovou datovou strukturu, která při změně vygeneruje událost. V Pythonu je ovšem problém odchytávat obecně přiřazení a změny hodnot v proměnných. Na nejvyšší úrovni (object_a.data = 382) to jde, ale jakmile udělám object_a.data = [1, 2, 3,], tak odchytit object_a.data[2] = 56 
18. 8. 2014 19:48 (aktualizováno) | dev modellerkit python |

Bez modelu

Nejprve bych rád poděkoval pajovi, který mě svými komentáři navedl na deskriptory. Vypadá to, že dost zjednoduší zápis. Ale o tom až jindy. Minule jsem slíbil, že vyzkouším jiný přístup, kdy view se tváří jako model. Můžeme jít na to: sidestep01. Tentokrát tedy nebudeme dělat žádný oddělený model, ale naše okno naučíme normálně reagovat na přiřazení, ať už jako levou nebo pravou stranu…
18. 8. 2014 19:48 (aktualizováno) | dev modellerkit python

Modelování: Ukázka

V minulém díle jsme si udělali hierarchii a přidali malý nástroj na mapování události na obslužnou funkci. Dnes si to můžeme dát všechno dohromady, ať konečně vidíme, o co mi celou tu dobu jde. Opět tedy github/modellerkit, tentokrát step06. Zase k tomu budeme potřebovat wxPython. Tak rovnou do toho. Spusťte si view01.py. To hlavní, čeho jsem chtěl dosáhnout najdeme navěšené na tlačítka…
18. 8. 2014 19:48 (aktualizováno) | dev modellerkit python |

Model v modelu aneb kdo si ze mě střílí?

Minule jsme už měli horké objekty uvnitř horkých objektů – např. HotList v HotObject, ale když přišlo na to, pověsit si event listenery, tak jsme se dostali do slepé uličky. Připomeňme si, co vlastně děláme. Náš model vypadá logicky takto: /---pre class ProductModel(object): def __init__(self, server): self.server = server self.article = "" self.sn = 0 self.process = [] self.operations = [] \---
18. 8. 2014 19:48 (aktualizováno) | dev modellerkit python |

Model z reálného světa

Začnu jinak, než jak jsem minule zamýšlel. Zkusím se rovnou zaměřit na skoro skutečnou situaci. No, dobře, ne úplně skutečnou, ale podobnou tomu, co občas sám dělám. Budu chtít implementovat celý model jako jeden objekt, který mi bude při změně „vystřelovat“ nějaké události. A teď ta skoro skutečná situace: Máme nějakou sadu výrobků. Při přečtení čárového kódu na výrobku chceme zobrazit informace o něm…
18. 8. 2014 19:48 (aktualizováno) | dev modellerkit python |

Modelujeme s pravítkem

Minule jsem zmínil, že můžeme chtít také v modelu spravovat vybranou položku. Tady už nastává oboustraná komunikace mezi view (neboli tím vlastním oknem nebo ovládacím prvkem) a modelem. View musí modelu sdělit, že se změnila vybraná položka, naopak model musí „odpálit“ zprávu když se změní vybraná položka. Jenže tady nám vzniká potenciální problém. View řekne modelu: nastav výběr na pátou položku…
18. 8. 2014 19:48 (aktualizováno) | dev modellerkit python |

Sada pro modeláře

Když jsem tak před deseti lety viděl Java Swing, bylo to jako zjevení. V porovnání s tím, jak se bastlilo uživatelské rozhraní jinde (GTK, YAST, MFC), tohle mělo hlavu a patu. Pro neznalé: Figurují v tom modely a listenery. Ovládací prvek (Komponenta UI, Widget, Control, ať už tomu říkáme jak chceme) má model. Obsah prvků neměníme na tom prvku, ale úpravou obsahu modelu…
18. 8. 2014 19:48 (aktualizováno) | dev modellerkit python |

vim python-mode

Některé nevýhody dynamických jazyků lze do jisté míry značně eliminovat striktním dodržováním jistých konvencí. Jaké konvence si ale vybrat? Přímo se nabízí doporučení PEP8. Ale kdo si má ta pravidla pamatovat? Naštěstí existují nástroje, které nám s tím pomohou. A je jich docela dost: pylint, rope, pydoc, pyflakes, pep8, a další. Jestli stejně jako já nepoužíváte IDE, ale obyčejný textový editor, tak máte štěstí, protože si tam můžete nakonfigurovat to, co budete potřebovat.
21. 3. 2014 20:21 | dev python |

Pětiminutovka: SQL nad csv

Nedávno jsem narazil na zajímavý projekt textql, který umožňuje spouštět SQL dotazy nad csv souborem. Samozřejmě mi, stejně jako vám, hned došlo, jak to dělá. Tak se na dvě minutky zamyslete… Taky Vám to vyšlo tak, že načtení csv souboru je banální, a pak se to prostě napere do sqlite databáze, a je hotovo?
23. 2. 2014 21:59 | dev python |