Budu teď zrovna psát Gtk+2 program, který pojede (má jet :-) i pod Win, takže jestli můžu hlasovat, tak mě nejvíc zajímají praktické problémy (a jejich řešení), na co si dát bacha, kde něco nefunguje úplně stejně, kde je potřeba nějaký trik, a tak vůbec. Ve Win jsem naprostý začátečník ;-)
BTW screenshot z Win nemá vyhlazovaná písma -- znamená to, že byla vypnuta, nebo že to pod Win nefunguje?
v GTK+ jsem neprogramoval (ale neco jsem o nem cetl) a pripada mi, ze lepsi volba jsou wxWindows ... je tam podpora pro vsechno co jste psal a navic je tam vyresen i tisk, file dialog apod. Nejsou tam asi nektere veci z GLib, ale myslim, ze cast jich je standartni (napr Posix) takze neni potreba resit je v takove knihovne. Co mi hlavne vadi na GTK, ze nevytvari nativne vypadajici aplikace, ale dava jim vlastni "xicht". IDE je pro wxWindows nekolik...
Jestli má aplikace vypadat jako ostatní aplikace na dané platformě, nebo naopak co nejpodobněji na všech platformách, to je ,,politické`` rozhodnutí. Někdo chce to a někdo ono, ani jedno bych nezatracoval. Gtk+ má témata, takže přizůsobení vzhledu lze [do značné míry] řešit i tématem.
wxWindows je abstrakce nad toolkitem dané platformy. Připadá mi, že v Unixu je už u grafického prostředí těch úrovní abstrakce tak akorát.
K ,,cast jich je standartni (napr Posix) takze neni potreba resit je v takove knihovne`` bych dodal, že wxWindows duplikují řadu věcí z STL (rep. MFC, resp. Qt, resp. čehokoli -- mám pocit, že napsat si vlastní STL je asi ctižádostí každého C++ programátora :-) takže ať si každý zamete před vlastním prahem ;-)
Jinak wxWindows jsou C++. Takže např. pro mě špatně použitelné (vím, že existuje binding i pro Python a Perl). C++ mě nějak nenadchlo a píšu buď v C nebo v nějakém skutečně vyšším programovacím jazyce.
Naprosty souhlas. Jen dodam, ze ve wxWindows toho z opravdoveho C++ moc neni, protoze podporuje nejenom ruzna prostredi, ale i ruzne (a velice stare) kompilatory. Kod wxWindows proto vypada spis jako C nez jako C++ (makra preprocesoru a podobne obludy). Lepsi je pouzit wxPython, nebo gtkmm (pokud mate radi C++ jako ja).
Srovnával někdo GTK s Javou ?
Jako kriterium prosím vezměmež podporu programování a výsledných GUI programů.
Dovedete někdo říct nevýhody Javy oproti GTK ?
Já jsem přišel pouze na trošku menší výkon (ale IMHO méně než 10%) a trošku větší paměťovou náročnost (ale zase v průběhu činnosti programu tato paměť nikde neteče).
Jinak si myslím, že Java je na tom stejně až lépe (rozsah vestavěných knihoven, knihovny třetích stran, velká základná vývojářů, programových prostředí).
Zmiňoval jste se o nevýhodách:
a) gnome-print je usilovně vyvíjen (přepisován z gnome-1.4) a v brzké době bude použitelný (čekají na to takové projekty, jako evolution nebo gnumeric).
b) Nový souborový dialog bude součástí Gnome 2.4. Zatím se můžete podívat na projekt gnome-file-selector (i když nevím, zda bude základem budoucího dialogu).
c) Anjuta2 zatím neumí tolik, co uměla Anjuta1. Ale snad se to zlepší.
Co se týče platformní nezávislosti, není to až tak skvělé - pro 64bitové platformy je GTK2 zatím značně nevychytané a silně padavé.
zdravim
uz nejaky cas robim v gtk+ a chcem teda podotknut, ze kombinacia anjuta + glade existuje. sice to nepouzivam (a teda nemam ani skusenosti), ale ak si dobre pamatam, tak by to mala byt klavesova skratka ctrl+g v anjute, ktora zapne glade. chcel som poslat aj linku na clanok, kde som to videl, ale neviem ho najst... co uz...
Jsem sice programator ale nemam prakticke zkusenosti s programovanim GUI pomoci GTK. Muj nazor berte jako nazor pokrocileho uzivatele.
Pokud se ve Vasi aplikaci bude pracovat se soubory, ktere se budou nacitat z HDD, uzivatel si je bude pomoci FileDialogu nacitat a hledat a ukladat, tak se obavam ze soucasne GTK je ta nejhorsi volba. To co predvadi GTK File Dialog to je nocni mura !!! Mam rad GIMP a casto jej pouzivam (jak v Linuxu tak na win2k), GTK tedy z uzivatelskeho hlediska znam, ale FileDialog je proste otresny !!!
To je skoro nepouzitelne, zkuste prosim radeji Qt (ale tam je nejaka divna licence na win32 platformu, myslim), wxWindows, Swingy v Jave (ted uz v Jave konecne vypada FileDialog k svetu) nebo neco podobneho. Nebo uzivatele Vaseho produktu po castejsim uzivani GTK FileDialogu skonci v Bohnicich. :)
Mno, pro Win uživatele je GtkFileSelect asi fakt zvláštní, protože nepoužívá koncovky souborů -- ono se na ně v Unixu zase tak moc nedbá ;-) takže i když je to užitečná featura, tak ji tam prostě v začátcích prostě nikdo nenaimplementoval.
Nicméně doplňování jmen souborů tabulátorem je featura, se kterou bych se já tedy špatně loučil -- vždycky mě vytočí, když to ve Win nefunguje, a v Bohnicích bych tímpádem skončil, kdybych musel používat nativní dialog (tj. třeba wxWindows).
Gtk+ sice (nejak) funguje pod Widlema, ale nepouziva nativni volani funkci W32 API. Proto i file-dialog asi nikdy nebude nativni. Otazka je, jestli je to opravdu tak velka nevyhoda. Obcas se setkavam s programy delanymi pro Widle 3.11, ktere sice pod w95 vypadaji jako w95, ale chovaji se jako w3.1. Zas az tak mi to nevadi.
pod gtk vyvyjim aplikace pres 2 roky, urcite zkusenosti tedy jsou, za ty 2 roky se stalo to, ze jsem postupne presel z 1.0 na 1.2 versi a ted portuju na 2.2. Jde to celkem v pohode, ale obcas se zmeni nejaka ta feature, coz lehce komplikuje situaci:-)
jinak pod gtk se programuje o dost tiz nez pod wxWindow pod kterymi je to prece jen pohodlnejsi, na druhe strane gtk je podstatne rychlesji a nema vazbu na ++ a podobne knihovny, na desktorpu je to jedno, ale pokud mate plikaci jedhoucelove na ovladani nejakeho zarizeni jako ja, tak to ocenite, ze neinstalujete na slaby stroj blbosti
nicmene to ze se zvolil jako zakladni jazik C je dobre protoze to umoznuje delat ruzne nadstabvy, treba ve Fortranu:-)
osetrovani zvuku a tisku pod okenim toolkitem zjevne neni problem prvoradeho zajmu:-) to je vec prostredi jako Xsystem, gnome, kde:-)
hned na prvni radce na www pro gtk+ pro win32 stoji "The program(s) might crash unexpectedly or behave otherwise strangely." Sice dal stoji, ze to dela i rada jinych programu pod Win - ale ze by mi ta uprimna veta animovala k tomu, abych povazoval gtk+ za multiplatformni, to rici nemohu? Zkusil uz to vubec nekdo?
To tvrzení je o *Gimpu* (nebo teda nevím, kde jste ho mohl jinde najít). Já jsem Gimp na Win zkoušel a funguje normálně. Ale protože Win pravidelně nepoužívám, tak nemůžu říct, jestli padá víc nebo míň než ostatní aplikace na téže instalaci (resp. víc nebo míň než v Unixu -- jde o vývojovou řadu)
V pluginech. Testoval jsem to a zjistil pokusy, že bylo potřeba odstranit 3 soubory z adresáře pluginů. Dnes si ale akorát pamatuji, že jsem myslím odstraňoval podporu pro TIFF, ale už si opravdu nejsem jistý. Budete muset otestovat.
Koneckonců pluginy mě napadly první, když se to dost často seklo právě při načítání pluginů.
Po odstranění inkriminovaných pluginů nebyly jakékoli problémy jel GIMP stabilně i na Windows 95.
jeste chci dodat par veci, z pouziti autoconf automake mam hruzu, porad jsem v povhybach toho kdy to budu muset zase pouzit... nicmene v tomto pripade je to kanon na vrabce, na preklad staci jen pkg-config prikaz dodavany s knihovnou...
k tomu file fialogu o kterem pise autor, potreboval jsem dodelat do filedialogu nejake dalsi polozky (ukladani kopresovaneho souboru, parametry souboru), jde to sice do prislusneho widgetu snadno doplnit ovsem ponekud neportabilni cestou, z 1.2 do 2.2 to proslo, ale desim se toho, ze dal to neprojde... tuhle situaci jsem (zatim) ve wxWin neresil, uvidime jak na tom bude ta...
Když už bych chtěl něco programovat pro více OS, tak bych si vybral FLTK (www.fltk.org). Citace ze stránek:
FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation. It is currently maintained by a small group of developers across the world with a central repository on SourceForge.
FLTK is designed to be small and modular enough to be statically linked - the "hello" program is only 97k when compiled on an x86 Linux system! FLTK also works fine as a shared library and is now being included on Linux distributions.
FLTK also includes an excellent UI builder called FLUID that can be used to create applications in minutes.
OpegGL je pěkný, ale taky tam píšou:
UTF-8 support *will* be in the next major release of FLTK.
To jest, ještě tam není. FLTK-UTF8 je momentálně samostatný projekt.
Můžete argumentovat, že interní použití Unicode pro veškerý text je v Gtk+ od 2.0, což zase není tak dávno. Jenže už i na to se pěkně dlouho čekalo. A čekat ještě dál?
Navíc to nemá žádný built-in FileSelect, takže to je oproti Gtk+ si výhoda, protože nemůže být škaredý ;-) Vůbec tam není spousta věcí, takže proto je to asi Fast'n'Light.
Rad bych prubnul GTK 2.x na Windows, pod Linuxem mi jede, ale mam zkusenosti, ze snaha o kompilace cehokoliv stazeneho z CVS na windowsich konci spatne. Nevite nekdo o nejakych binarkach GTK2 pro Window? Rad bych to ozkousel a pripadne se pote omluvil za urazku FileDialogu. :)
Vyukove programy napsane s knihovnami gtk+ a freepascalem pouzivaji deti doma skoro kazdy den bud v M$Win nebo v Linuxu (podle toho, ktery pocitac bezi),programoval to manzel a nejsou s tim zadne problemy. FileSelectDialog je myslim normalni nebo jsem si uz zvykla?).
Navod na zjednodusene pouziti gtk+ s freepascalem
a nejake ukazky vyzkousene pro Linux i M$ Win jsou na
http://mujweb.cz/www/kalendar/gnu/index.htm