Michal Čihař - Archive for Jan. 7, 2006

V čem psát GUI?

Tuhle otázku jsem už řešil pod Linuxem několikrát. Nejdříve vyhrálo KDE, protože jsem ho používal, při přechodu na minimalističtější WindowMaker mi došlo, že mít aplikaci závislou na takovém molochu není nejlepší nápad a porozhlížel jsem se po něčem jiném.

Už jsem věděl, že další aplikace rozhodně nebude napsaná v C/C++, ale v Pythonu, takže nutná podmínka byla podpora Pythonu. Další nutná věc byla funkčnost i na jiných platformách (i když té zatím ve skutečnosti nikdo nevyužil). V té době jsem narazil jen na Qt, GTK a wxWidgets (tehdy ještě wxWindows).

Qt mělo nevýhodu v nedostupnosti PyQt pod Windows, což bylo způsobeno licenční politikou Trolltechu. GTK zase na Windows nemá nativní widgety, takže aplikace nevypadají tak jak by měly. Takže nakonec jako ideální volba vypadaly wxWidgets resp. wxPython.

Po dvou letech používání si to už rozhodně nemyslím a kdyby to nebylo tolik práce tak už používám něco jiného. Tolik hacků jako pro různé verze wxPythona jsem už dlouho nikde vymýšlet nemusel. To že se občas třídy prostě přesunou bych ještě pochopil, ale to že se to rozumně nevypořádá s unicode textem už ne. Opravdu není zábavné řešit bugy uživatelů kdy jim aplikace v python segfaultuje kvůli tomu, že někdo zapomněl kontrolovat návratové kódy konverzních funkcí.

A co tedy používat? Nevím. Rozhodně něco na vyšší úrovni než je GTK. Dnes jsem narazil na framework Kiwi a po přečtení části dokumentace se mi to líbí čím dál tím víc. Ale mám obavy abych nedopadl jako s wxWidgets a přecejenom změna stojí dost práce… Nenajde se tu někdo kdo by s tím měl zkušenosti? Co používáte vy?