Početak›Forumi›Linuks›Programiranje›Odg: Aplikacije za X
- This topic has 11 odgovora, 5 glasova, and was last updated 17 years, 8 months ranije by maddox.
-
AutorČlanci
-
8. jul 2006. u 7:04 pm #7583maddoxUčesnik
Dakle, da li neko moze da mi kaze kako napraviti aplikaciju koja ce raditi pod X-om, dakle imati GUI, a da bude nezavisna od KDE-a ili Gnoma. Kako mi se cini to su aplikacije tipa Xpaint, Xnview, Xpdf, Xbill i slicne. Dakle kako kreiradi palikaciju koja ce raditi na vecini danasljih distribucija. U cemu se pise GUI za ove aplikacije? Ja sam gledao po netu ali nisam nista nasao.
Unapred zahvalan na odgovorima.
Pozdrav.8. jul 2006. u 7:46 pm #45769RiSKUčesnikMislis li ti na aplikacija nezavisne od KDE-a i Gnoma ili nezavisne od QT-a i GTK-a?
Prvo si trebao kazati u kom jeziku mislis da pises tu stvar. Neka, recimo, bude c++. Vrlo verovatno da ces koristiti njega. 🙂
Ovako ti stoje stvari sto se tice programiranja korisnickog interfejsa:
Mozes da koristis neku od biblioteka sa widgetima. Na primer Qt, GTK2– i sl.
Prednosti: Imas testirane i dobre kompnenet koje se uklapaju u ostatak korisnickog interfejsa. Pisanje programa, bar onog dela koji se tice UI-a ce da se svede na lepljenje komponenti na prozor uz pomoc nekog RADa, tj ‘interace designera’ ako tako vise volis da zoves tu stvar. Npr. Qt Designer (KDevelop Designer), Glade, FLUID …
Mana ovog pristupa se ogleda u sledecem: Ima nenormalno mnogo distribucija n akojima program treba da proradi, i na svakoj od njih treba da postoji biblioteka koju si ti koristio. Cesto tacno odredjena verzija te biblioteke. Takodje cesto treba da bude na nekom ‘posebnom mestu’, npr u /usr/lib/nesto. Znaci ako korisnik nije instalirao odgovarajuci paket, ili ga distribucija ne isporucuje, program koji si dimanicki linkovao moze da ne proradi. Ako ga staticki linkujes bice previse spor i glomazan. U svakom slucaju ako koristis neke ‘normalne’ biblioteke, npr. GTK 2.6 ili Qt 3.x, vrlo verovatno je da ce ih biti na svim sistemima. simpaticno je recima koristiti FLTK. Njega bez problema mozes da linkujes staticki – mali je, ali zato ima samo najosnovnije komponente i prilicno je ruzan. Ako koristis wxWidgets, ewl ili nesto slicno, potrudi se da uz program distribuiras i komponente. Na dosta distibucija ih nema.Drugi pristup je da direktno koristis protokol za X server. T.j. da na najnisem mogucem nivou komuniciras sa X-om. Ovo ce za rezultat imati najbrzi i najoptimizovaniji kod, a ako se potrudis aplikacija ce izgledati mnogo dobro. Ali… Najveci deo koda aplikacije ce biti korisnicki interfejs. Sve ces morati sam da testiras. U principu, ne verujem da ces ikada da koristis ovo. Pa zbog toka su godinama kukali na Unix, sve dok se nisu pojavile biblioteke sa widgetima. Previse je komplikovano.
Sto se tice KDEa i Gnoma, i jedan i drugi imaju svoje APIje. Koriscenjem ovih imaces kompletnu integraciju u KDE/Gnome, opet veliku olaksicu u pisanju koda – veliki deo je vec neko tamo napisao i ti samo pozivas funkcije. Ali ce na masini na kojoj se program izvrsava morati da bude instaliran KDE/Gnome – sta si vec koristio. To nije neki veliki zahtev, posto ih na vecini danasnjih sistema ima. Ako hoces kod nezavisan od ovid okruzenja, jednostavno nemoj da koristis ove APIje.
9. jul 2006. u 1:29 pm #45770maddoxUčesnikHvala ti puno za smernicu, sada bar mogu dalje da googlam i odlucim se kako cu napraviti aplikaciju. Nekako mi se sada posle tvog objasnjenja Gambas najvise svidja. Ako vec mora nesto da se instalira, mogu da distribuiram Gambasove biblioteke zajedno sa programom, a najlakse cu napraviti to sto nameravam.
Pozdrav.
9. jul 2006. u 1:36 pm #45771kmilosUčesnikAko barem malo planiraš unapred i želiš da ti aplikacija bude nazavisna od platforme (*nix, Win, Mac), toplo preporučujem da malo prostudiraš wxWidgets.
Pogledaj takođe i freedesktop.org za API-je koji bi trebalo da su nezavisni, tj. zajedniči za Gnome, KDE i ostale moderne X desktope.
9. jul 2006. u 9:04 pm #45772RiSKUčesnikPazi samo na licencu: Ako ti program nije pog GPLom a koristis Qt ili wxWigdets moraces da platis licencu za njih. Zato su u velikoj prednosti FLTK i GTK.
p0zz
9. jul 2006. u 9:55 pm #45773maddoxUčesnikRazmisljao sam i odlucio se da koristim glade, posto kod njega mogu da koristim i c za programiranje, a to mi za sada najvise odgovara. E, sada, kada neko zeli da koristi moju aplikaciju on na masini treba imati instaliran GTK? Ili samo treba da ima libglade biblioteke? I dalje mi to nije bas najjasnije, dakle da li moze neko da mi da neki link gde ja mogu sve lepo od pocetka procitati. Dakle, konkretno me interesuje GTK posto je slobodan, i ne treba mi licenca. Nisam siguran, mozda trenutno mesam babe i zabe, sto je veoma moguce, ali ako neko ima strpljenja da mi da link gde mogu da procitam sve lepo, ja imam jos vise strpljenja da citam. Unapred se svima zahvaljujem na pomoci, kao sto se zahvaljujem RiSK-u i Milosu na dosadasnjoj pomoci.
9. jul 2006. u 10:08 pm #45774kmilosUčesnik@RiSK
wxWidgets licenca ne ograničava nikako kakve aplikacije možeš da praviš, može i GPL i komercijalne bez ikakve nadoknade
@maddox
wxWidgets je u velikoj prednosti jer na svakoj platformi koristi “native widgets”: GTK ili Motif ili osnovni X na *nixu, Win-ove widgets ili Cocoa na Mac-u, a sve to dobiješ za dž u istom kodu. Zato se vredi zapitati gde će ti sve raditi aplikacija.Inače, ako aplikacija koristi GTK onda svaki korisnik mora naravno imati GTK biblioteke instalirane, ili ćeš ti statički likovati i isporučiti svoje sa aplikacijom.
9. jul 2006. u 10:58 pm #45775RiSKUčesnikIzvinjavam se na dezinformaciji u vezi wx-a i licenci. Ali sam siguran da je u pocetku bio pod nekom takvom licencom. Ako su skroz free, onda je verovatno bolji izbor od GTKa…
Sad sam se zainteresovao…. Pocecu da ceprkam wx cim nadjem vremena…Za linkove namam pojma.. Proguglaj malo.
10. jul 2006. u 11:11 am #45776jbobanUčesnikAko barem malo planiraš unapred i želiš da ti aplikacija bude nazavisna od platforme (*nix, Win, Mac), toplo preporučujem da malo prostudiraš wxWidgets.
Ni ja još nisam načisto sa izborom cross platform biblioteke. Ovu wxWidgets sam više puta gledao i isto toliko puta odustajao i vraćao se Qt-u. Nekako mi deluje previše Microsoft Visual C++ like, sa gomilom makro definicija tipa IMPLEMENT_APP(MyApp), BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) i sl. Još uvek je nisam dovoljno upoznao i nisam definitivno odustao, ali mi se Qt čini pogodnijom, osim u smislu GPL licence.
Da li ima nekih najava da će KDE početi da koristi wxWidgets i koji je razlog da koristi baš Qt?10. jul 2006. u 2:42 pm #45777RiSKUčesnikNe verujem. KDE i Qt su spoj. Vidis da KDE 4.0 izlazi sa Qt-om 4.
Nego, Trolltech je izgleda malo pokvario posao. Procitah negde da prodaju akcije. Sad bas ne znam o cemu se radi.
Mozda se nadje neki entuzijasta da ih kupi samo da bi izdao Qt pod LGPL-om. 😀 😀 -
AutorČlanci
Moraš biti prijavljen da bi postavio komentar u ovoj temi.