Řešil jsem návrh technologií multiplatformního (Linux, Windows) jednoduchého GUI programu, který by šel distribuovat na Windows v binární formě a vše potřebné (pro běh na "holých" windows bez jakýchkoli doinstalovaných knihoven nebo prostředí typu GTK+, Qt, wxWindows, JRE nebo python.exe) šlo přinést na jedné disketě nebo stáhnout po modemu. Na Linuxu by musela fungovat diakritika a přepínání klávesnice (to vylučuje např. FLTK). Nevymyslel jsem nic lepšího, než vytvořit vlastní C++ GUI knihovnu nad Win32API x (Xlib nebo Qt, GTK+, ...) a napsat program nad ní. Jsem zvědavý, jestli autorovo řešení splní mé nároky. Rád se proto nechám poučit o detailech a úskalách převodu z *.py do *.exe.
No ale přesně to, o čem píšeš, dělají wxWidgets (dříve wxWindows). Tj. slouží jako jakási mezivrstva mezi GTK / Win32. Samozřejmě asi obsahují spoustu tříd, které nevyužiješ, na druhou stranu psát si vše sám a znovu - na to je třeba dost času.
Krom toho si myslím, že s modemem jde tahat celkem v pohodě soubor do cca 4 MB. Stáhnutí trvá necelých 20 minut a to je ještě pro většinu uživatelů únosné.
Mimochodem hezky příklad toho, kdy si autor napsal vše úplně od základů, je slovenský "photoshop" pixel32 - http://pixel32.box.sk.
A právě wxWidgets + GTK by si musel uživatel Windows stáhnout, takže to není to, co jsem chtěl. Opravdu mi jde o to, aby to, co se musí tahat na holý a typicky nainstalovaný systém (jak Windows tak Linux) mělo do pár set kB a dokázala to i úplná lama. Na ten pixel32 se podívám.
Jak bylo řečeno. Program psaný s wxWidgets lze na Linuxu slinkovat s Gtk+ nebo Motif. Na Windows jako nativní Win32API aplikaci a na Macu jako nativní kdovíCoSeTamPoužívá.
Navíc je k dispozici i celkem pěkný klikací editor (wxGlade).
Má spoustu nedostatků, ale asi nic lepšího v této kategorii není (Java je jiná kategorie).
Více viz http://wxwidgets.org/
jeste se musi jit na kafe, kdyz se v wxwidgets pod windows ma natahnout 10000 elementu do List-Controlu? Umi listcontrol pod unixem justify_right/left u list-controlu pro jednotlive sloupce?, je mozno kdyz....?, umi..?,
strelim ted od boku, s wx jsem delal jen chvili pod pythonem (lin & win):
Q: jeste se musi jit na kafe, kdyz se v wxwidgets pod windows ma natahnout 10000 elementu do List-Controlu?
A: ve wxLC_REPORT rezimu neni problem pouzit wxLC_VIRTUAL. pokud se snazite nacitat 10k polozek do icon-view, asi mate hodne zvlastni aplikaci
Q: Umi listcontrol pod unixem justify_right/left u list-controlu pro jednotlive sloupce?
A: "pod unixem" znamena pod wxGTK, wxMotif, nebo snad pripadne wxX11? pod wxGTK umi.
ja osobne mam wxWidgets dost nerad, IMHO osklivy API a`la MFC, problemy rozchodit to s GTK 2, widgety maji defaultne bordery, coz vypada hnusne kdyz je takovejch widgetu par do sebe vnorenejch a je nutny je odstranovat, ale aby na vsech platformach zustal aspon jeden atp.
nejlepsi je mit dobre rozdelenou aplikaci a mit GUI napsany dvakrat, tomu se nic nevyrovna
Bohužel nevyhovuje. Qt ve verzi 3.x jsou pro Windows pod nějakou Trolltech licencí, která je jak správně tušíte, za penízky. Ale Qt 4 by snad měla být GPL i pro Windows pro GPL aplikace.
Citace:
Qt for Windows will be available under both a commercial license and the open source GPL license starting with the next major production release of Qt, version 4.0, which is expected in the second quarter of 2005. With the GPL availability of Qt for Windows, Trolltech will offer dual licensing of Qt on all supported platforms.
Nikoliv. Nastavte na Linuxu anglickou klávesnici, spusťte program ve Fox toolkitu, napište 'abc', přepněte na českou a napište 'ťuťuťuťutínek ďábel Úchyl'. Podle mě se vám to nepovede.
mate s tim fox-toolkitem zkusenosti na trochu hlubsi urovni? Jak je to s rychlosti u velkych aplikaci, kdyz mate velmi mnoho tech handleru na event-funkce - je pravda ze toolkit hleda ty funkce pres hash a kdyz je treba nekolik 1000 volani nejakych eventu, jestli to neni pomale?
Mám s FOX Toolkitem jen povrchní zkušenost. Staticky slinkovaný jednoduchý program je opravdu velmi malý. Ale jak už jsem psal blbl mi (pouze na Linuxu) český vstup např. do edlajn u znaků vyžadující dvojí ťuknutí do klávesnice (ď ť ň...). Jak se chová prostředí v (jakémkoli smyslu) náročnějších projektech bohužel nevím.
Tak cena je jiste duvod. Nicmene se muzeme tesit, ze ve seruhem ctvrtleti se licence Qt pro Widle zmeni. Snad...
Ale na moji otazku ohledne dll-ek to neodpovida...
Opravdu FLTK neumožňuje přepínání klávesnice? Já se to marně nějak snažím rozchodit. Mám to vzdát? :-( Ve win diakritika funguje. V Linuxu nemůžu napsat například ď nebo ň. Zvláštní je, že to ale jde překopírovat přes schránku. Tedy font je v pořádku, zobrazit to jde. Jen je problém s klávesnicí abych to napsal.