Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Osnova za portabilan GUI?

[es] :: C/C++ programiranje :: Osnova za portabilan GUI?

[ Pregleda: 3485 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


+1 Profil

icon Osnova za portabilan GUI?16.06.2002. u 14:16 - pre 266 meseci
Postoji li neka osnova, API, ili sta vec, koja ce da vrsi samo jednu funkciju - da prikazuje na ekran ono sto programer trazi.
Recimo da hocu da napisem svoj GUI koji ce da bude portabilan na Windowsima i na Unixu, sta bih trebao da imam, kako da posaljem neku grafiku na ekran?
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Osnova za portabilan GUI?16.06.2002. u 14:46 - pre 266 meseci
Peco ne postoji standard... Zavisno od platforme moras da "igras" po pravilima kompanije koja je napravila platformu. Generalno:
Linux/UNIX: Xlib
Windows: Win API

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


+1 Profil

icon Re: Osnova za portabilan GUI?16.06.2002. u 15:28 - pre 266 meseci
Gde da nadjem info o tom Xlib-u?
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Osnova za portabilan GUI?16.06.2002. u 17:28 - pre 266 meseci
"O tom Xlib-u" imas na www.xfee86.org, kao o u tvom /usr/share/doc (pretpostavljam) direktorijumu ako si instalirao dokumentaciju kada si instalirao Linux.
Svejedno ima i nekoliko veeeelikih PDF-ova koji govore o ovoj (ogromnoj) temi. - Odmah da ti kazem programiranje aplikacija koje se oslanjaju na Xlib je veoma tezak posao (da nije tako bilo bi ih mnogo).
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.yubc.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon Re: Osnova za portabilan GUI?16.06.2002. u 18:03 - pre 266 meseci
Pa predpostavljam da on ne zeli da pise neku aplikaciju vec svoju biblioteku za gui... jer bi u suprotnom koristio neku od kolko-tolko portabilnih (neke manje neke mnogo vise...)
Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.du.heimsnet.is

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Osnova za portabilan GUI?16.06.2002. u 22:27 - pre 266 meseci
Predraze, zasto bi pisao svoju GUI portabilnu biblioteku, kada ih vec nekoliko postoji?

Moja omiljena ,uz pomoc koje i razvijam Python portabilne GUI programe, je wxWindows:

http://www.wxwindows.org/


Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Osnova za portabilan GUI?16.06.2002. u 22:40 - pre 266 meseci
Jedna stvar koja mora da se naponeme kad je wxWindows u pitanju (i pored toga što je ne koristim ovo je zaista vredno pomena) je da je to možda jedina Linux biblioteka koja nudi kakvu-takvu mogućnost portovanja MFC aplikacija na Linux! :)

Po mom skromnom mišljenju FLTK je daleko ispred wxWindows-a po mnogim stvarima, ali tu biblioteku zaista treba probati svejedno - odlična je.

alex, jesi li probao možda pyFLTK ? Kakva su iskustva ako jesi?
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.yubc.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Osnova za portabilan GUI?17.06.2002. u 02:01 - pre 266 meseci
Citat:
zastita:
Postoji li neka osnova, API, ili sta vec, koja ce da vrsi samo jednu funkciju - da prikazuje na ekran ono sto programer trazi.
Recimo da hocu da napisem svoj GUI koji ce da bude portabilan na Windowsima i na Unixu, sta bih trebao da imam, kako da posaljem neku grafiku na ekran?


Neću da ulazim u razloge zašto bi takav poduhvat bio veoma komplikovan i najverovatnije nepotreban.

U svakom slučaju, treba da se odlučiš prvenstveno u kojem jeziku želiš da radiš. Ako radiš u C-u, lakše ćeš ,,povezivati'' sa programima iz drugih jezika, a ako radiš u C++, imaćeš bolju sintaksnu kontrolu (pošto pretpostavljam da ćeš da praviš u objektnom maniru, a ne message-based kao što su Xlib i Win32 API). Naravno, ukoliko se odlučiš za neke skript jezike koji imaju već gotovu podršku grafičkog okruženja pod oba sistema, posao će ti biti lakši (ali, pitanje je postoje li takvi skript jezici; možda Tcl/Tk?)

E sada, pretpostaviću da si odabrao C++, kao najrasprostranjeniji predmetno-usmereni (aka objektno-orijentisani ;) programski jezik. Ukoliko želiš da što veću količinu koda možeš bez ikakve izmene da koristiš na obe platforme, potrebno je da napraviš jedan ,,interfejs'' između sistemske grafičke biblioteke (Xlib, Win32 API, Framebuffer, SVGALIB...), i tvog GUI okruženja.

U neku ruku, može se reći da praviš virtuelnu-grafičku-mašinu (dozvolite da je tako nazovem), koja će sadržati samo osnovne grafičke primitive, i baratanje sa porukama (odnosno u predmetnoj paradigmi sa događajima).

Prednost ovakvog pristupa je u tome što će ti najveći deo koda biti lako prenosiv na veliki broj platformi (potrebno je napisati samo grafičke primitive za svaku od njih), ali ono što je velika mana je to što će to raditi relativno sporo. Druga prednost/mana je što će GUI stalno izgledati isto na bilo kojoj platformi (pošto ćeš sam iscrtavati sve predmete i polja za unos).

Ovakav pristup mi se čini da koristi GTK+ (zajedno sa svojim portom na Win32), a najverovatnije i FLTK (leko, ispravi me ako grešim; na Win32 nisam probao).


Drugi pristup bi bio da napraviš dva kompletna zasebna okruženja oko sistemskih API-a, koji bi imali samo isti interfejs. Tada tvoja biblioteka zapravo ne bi bila portabilna, ali bi programi bili. Primer ovakve biblioteke ne znam (možda QT ima podršku i za ovako nešto?).

Prednost ovakvog pristupa bi bila brzina i izgled nalik domaćinu. Naravno, ogromna mana je što moraš za svaki sistem da pišeš praktično kompletnu biblioteku pokušavajući da ostvariš samo isti interfejs.

Moguće je da neke biblioteke koriste pristup između ove dve krajnosti, pa se za to i ti možeš odlučiti.

U svakom slučaju, pored GTK+, FLTK biblioteka (i mnogih drugih), zaista mislim da nema razloga da pišeš svoju (nisam mogao da odolim). Čak, postoje i mnoge druge, manje poznate koje rade i pod FB, SVGALIB, itd...

Toliko.

PS. Dejane, da li FLTK 2.0 podržava UTF-8? Pre par meseci kada sam pravio neke programčiće sa njim nisam uspeo da ga koristim (verzija iz CVS-a naravno)---a nisam bio raspoložen da pišem svoje textedit razrede.

PostPS. Ukoliko zbog preterane upotrebe srpskog jezika ne razumete neke od mojih reči, evo par napomena:
razred -- klasa; predmet -- objekat; poruke -- messages; događaji -- events
Ukoliko je ovo učinilo vaše čitanje težim, odlično :)
set {from = value;}
}

Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Osnova za portabilan GUI?17.06.2002. u 08:52 - pre 266 meseci
Ljudi (koji misle da je takav poduhvat nepotreban), razmislite malo šta bi bilo da su ljudi koji rade na recimo GTK+-u ili QT-u razmišljali kao vi po sistemu (hipoteza) "Što bih se ja mučio oko nekog novog GUI ToolKit-a kad je tu fantastični OpenMotif, Lesstif, Xforms..." ? Shvatate? - Ja podržavam svaki takav poduhvat, na kraju krajeva možda čovek želi da se igra, možda voli da ne zavisi od tamo nekih ljudi (ako mu se nešto ne dopada u nekoj biblioteci, on napiše patch, a oni neće da ga primene...). Ima dosta potencijalnih razloga da se nove GUI biblioteke pišu.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Osnova za portabilan GUI?17.06.2002. u 08:58 - pre 266 meseci
Citat:
tOwk:
PS. Dejane, da li FLTK 2.0 podržava UTF-8? Pre par meseci kada sam pravio neke programčiće sa njim nisam uspeo da ga koristim (verzija iz CVS-a naravno)---a nisam bio raspoložen da pišem svoje textedit razrede.


Danilo, nažalost ne :( Postoji peč koji piše jedan švajcarac i koji će FLTK tim najverovatnije da "uglavi" u FLTK2. Ako se neko pita šta je tu problem - čovek je napisao peč za FLTK 1.1x koji se, kao što znaš verovatno, MNOGO razlikuje od buduće "dvojke" (planira se tek za kraj godine).

Enivej, EDE tim (http://www.sf.net/projects/ede ) će najverovatnije to uraditi pre njih, jer nam treba UTF8 za naš dekstop koji je baziran na FLTK2.

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Osnova za portabilan GUI?17.06.2002. u 17:50 - pre 266 meseci
Peco, koliko se sećam hteo si da koristiš OpenGL da napraviš ovako nešto. Je si li odustao od te ideje?
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.yubc.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Osnova za portabilan GUI?17.06.2002. u 19:05 - pre 266 meseci
Citat:
leka:
Ljudi (koji misle da je takav poduhvat nepotreban), razmislite malo šta bi bilo da su ljudi koji rade na recimo GTK+-u ili QT-u razmišljali kao vi po sistemu (hipoteza) "Što bih se ja mučio oko nekog novog GUI ToolKit-a kad je tu fantastični OpenMotif, Lesstif, Xforms..." ? Shvatate?

Shvatam, i potpuno si u pravu, ali da i malo odbranim svoje prethodne stavove :)

Primeri koje si izabrao su malo neodgovarajući. GTK+ je nastao kao potreba razvoja prigodnije grafičke biblioteke za GIMP, a i tada su sve ostale biblioteke bile ,,neslobodne'' (slobodne varijante Motif okruženja još uvek nisu postojale).

QT je nastao kao potreba jedne firme da razvija softver koji radi na najpopularnijim platformama---naime Win32 i X Window System. To je bio potpuno vlasnički softver (znači ne slobodan), koji je tek u kasnijem razvoju postao ,,slobodan''. Pošto je svojoj popularnosti QT imao da zahvali u velikoj meri društvu otvorenog koda, zato se to i dogodilo (čak, mnoga njegova unapređenja su rezultat potreba KDE okruženja).

A sva ,,odlična'' okruženja nisu bila na dovoljnom nivou razvoja u vreme nastanka ovih. Dalje, ideja tvoraca novih grafičkih biblioteka je bila da se podrži neki naročit program (recimo GIMP za GTK+), a postojeći nisu zadovoljavali sve zahteve.

Citat:

- Ja podržavam svaki takav poduhvat, na kraju krajeva možda čovek želi da se igra, možda voli da ne zavisi od tamo nekih ljudi (ako mu se nešto ne dopada u nekoj biblioteci, on napiše patch, a oni neće da ga primene...). Ima dosta potencijalnih razloga da se nove GUI biblioteke pišu.


Podržavam i ja za takve svrhe. Ali kako sam govorio o GPL softveru, to što neko neće da prihvati dopunu/ispravku, ne ograničava tebe da i dalje koristiš tu dopunu i da je i sam distribuiraš.

Najbolji razlog iz kojeg podržavam je upravo ako tvorac ,,želi da se igra''. I nesumnjivo se slažem da razloga ima i pored ovog mnogo.

Konačno, izvinjavam se ako sam ikoga obeshrabrio (ali Dejan ga je ponovo ohrabrio :), i zato

Toliko.
a,
poziciju.., to jest postavl
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


+1 Profil

icon Re: Osnova za portabilan GUI?17.06.2002. u 19:24 - pre 266 meseci
Ja bih i dalje zeleo da koristim opengl u tu svrhu.
Ne znam sta vi mislite o tome, ima li neko protiv argumenat a da on nije "a zasto bi koristio ogl kad ima..." ?
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.du.heimsnet.is

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Osnova za portabilan GUI?17.06.2002. u 19:45 - pre 266 meseci
Citat:
leka:
Po mom skromnom mišljenju FLTK je daleko ispred wxWindows-a po mnogim stvarima

Mozes li ukratko da napravis poredjenje, odnosno da napises po cemu je to FLTK daleko ispred wxWindows-a?
Citat:

alex, jesi li probao možda pyFLTK ? Kakva su iskustva ako jesi?


Nisam probao ni FLTK ni pyFLTK, jer koliko vidim, pyFLTK je tek v0.2, sto mi se nikako ne svidja. S druge strane, wxWindows je vec daleko u stable fazi, sa veoma dobro dokumentovanim Python bindings-ima, a uz to wxDesigner daje kod i u Python-u i u C++ jezicima (od onih koji me interesuju).

Interesuje me da napises malko vise o FLTK-u jer trenutno sav kod u firmi baziram na wxWindows GUI-u, i aplikacije *bez* ikakve izmene rade na svim platformama gde postoji Python i wsWindows (dada, cak i na Mac-u ;)..

Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Osnova za portabilan GUI?18.06.2002. u 00:07 - pre 266 meseci
Tačno je to Alex da je pyFLTK v0.2 i da je 100% Python bindinf za wxWindows mnogo bolji. Lično mislim da Python programeri rade po sistemi "kud svi turci - tu i mali Mujo", ukratko - gledaju šta se najviše koristi. Neću da ulazim u dalju diskusiju o tome jer će da odvede u flame war, a pošto volim Python (iako nisam napisao više od stotinak linija koda) neću da počinjem diskusiju koja može da baci senu na Python. :)

Što se tiče moje izjave da je FLTK bolji u mnogome od wxWindows-a tu mroam pre svega da kažem jedno - moj sistem vrednovanja nije isti kao sistem vrednovanja nekog drugog programera - to je uglavnom individualna stvar. Konkretno Windows programer će uglavnom da voli wxWindows ili QT (pomenuo sam u ranijim tekstovima da je wxWindows odlična biblioteka ako se portuju MFC aplikacije). Zapravo wxWindows je (po meni) dizajnirana za portovanje Windows aplikacija!

- Prvi razlog zašto je FLTK bolji je da isti postoji na maltene SVIM poznatim platformama, navešću samo neke: UNIX (svi mogući UNIX-i), Linux, Windows (svi), OS/2, QNX, MacOS i MacOS X, ...
- Na većini ovih platformi radi već godinama
- NEZAVISAN JE - znači ne treba mu GTK+, GLib, ... Da bi se iskompajlirao na UNIXolikim sistemima treba mu samo Xlib, dodatno ako se želi doda se OpenGL...
- Ko se seća starih dobrih Xforms-a (mali milion UNIX aplikacija je napisan na bazi njih) shvata koliko je važna činjenica da FLTK obezbećuje najjednostavnije rešenje za portovanje Xforms aplikacija.
- Daje DEFINITIVNO NAJMANJI KOD OD SVIH SLIČNIH ToolKit-a (biblioteka)...
- U Cygwin-u se bez ikakvih problema kompajlira sa -mno-cyqwin (ko je čitao Cygwin licencu zna zašto je ovo bitno)
- Pod GPL-om je uz "ograničenje" ... Na sajtu se svima debelim slovima daje na znanje da se FLTK sme koristiti u komercijalnim aplikacijama, da se dll sme distribuirati (neizmenjen naravno), a ako se linka statički nema nikakvih problema.
- Kad pomenuh statičko linkovanje - tu je FLTK daleko najbolji od svih sličnih stvari jer se maltene sve aplikacije stopostotno bez problema statički linkaju sa FLTK-om. Zamislite tu uživanciju - kompajlirate svoju aplikaciju tako i ne razmišljate da li vaš korisnik ima još 10ak DLL-ova koji bi imače trebali QT ili wxWindows aplikaciji .
- Troši najmanje resursa od svih poznatijih biblioteka.
I da ne nabrajam dalje...

FLTK nije savršen, on nema nešto tipa bonobo komponenti, COM, Orbit, XML i ostala čuda današnjice...
aviti rad bez restartovanja ra�
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

[es] :: C/C++ programiranje :: Osnova za portabilan GUI?

[ Pregleda: 3485 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.