Kezdőlap › Fórumok › Programozás › GTK+, GDK programozás
- This topic has 28 hozzászólás, 3 résztvevő, and was last updated 19 years, 5 months telt el by
pointux.
-
SzerzőBejegyzés
-
2006-02-26-09:51 #2050858
„Szeretnék megismerkedni a GDK-val, de nem találok semmilyen használható leírást. Csak GDK Reference Manual-om van (api, referencia). De az alapokhoz elõször szükésegem lenne egy leíráshoz”
A gdk-hoz, pangohoz stb. is van (Bár, ha jót akarsz ahol lehet használj helyette cairot… sokkal jobb, mint ez a gc-s marhaság:), sõt a c++-os gtk 2.x-tõl is ezt ajánják.)„A GTK+ -hoz van egy angol nyelvû tutorialom, azzal elboldugolok. De jó lenne egy magyar nyelvû leírás is.”
Nincs, nem is lesz, mert nincs elég igény rá… hacsak valami mozó magyar le nem fordította. 🙂„Elsõ lépésként csak annyit szeretnék, hogy létrehozok egy GTK+ ablakot, és ebbe pl. rajzolni egy téglalapot. Az ablakot meg tudom csinálni, de rajzolni nem tudok bele. Tehát kellene egy egyszerû példaprogram.”
Na erre mondtam, hogy cairo. (Nem teljes a leírás, de példaprogik is vannak.)„GTK+ tutorial magyarul”
Végezetül, egy jó tanács: ha kicsit komplikáltabb progikat akarsz írni a c-be bele fogsz hülyülni…használj inkább c++-t.
(Jó persze van a gimp. Igaz, hogy õk csináltak hozzá egy félig meddig oo c-t, de már a diliházban vannak :))))gtkmm: http://www.gtkmm.org/docs/gtkmm-2.4/docs/
(Ha valami leírás éppen nem részletezett (ez elég gyakori)… pont (esetleg majdnem pont) ugyananazok a tulajdonságok, mint a gtk+-nál… tehát lehet azt is használni. Viszont a kód rövidebb és egyszerûbb lesz, ráadásul lehet használni mamóriát önmagától felszabadító pointert is – mint a javaban. Book a példaprogramok.)
cairo: http://cairographics.org/documentation
(Mondjuk gyerekcipõben jár, de már elképesztõ miket tud a kis zseni :))))2006-02-26-21:42 #2050859Hello!
Kössz a hozzászólást! De c kellene! Tudom, hogy oo nyelvekben sokkal egyszerûbb a gui, használtam már c++ -hoz wxWidgets-et, javaban awk-t, swing-et. De most GTK+ -ban, c-vel szeretnék guizni.
„A gdk-hoz, pangohoz stb. is van”
Merre lehet ilyet találni?2006-02-27-20:18 #2050860Maradnék a GDK-nál. Most már sikerült egy példaprogramot lebutítani, hogy csak létrehozok egy GTK+ ablakot, és ebbe rajzolok egy téglalapot. De nem minden tiszta. Kellene még mindig GDK-s leírás (nem csak referencia).
2006-02-28-19:07 #2050861„De ha tudsz konkrét címeket, akkor az érdekelne.”
Az api ref (+példák, demo könyvtár a tarballban) nem elég?:
http://developer.gnome.org/doc/API/gdk/
http://www.gtk.org/api/2.6/gdk/index.html
(amelyik szimpibb)
Az adott függvényre meg konkrétan rá kell keresni a neten.
Egyébként még hátha hasznát veszed ennek is:
http://www.netbrain.com/~brain/book/„Maradnék a GDK-nál.”
1) ahogy mondtam, a fejlesztõk sem igazán ajánlják már (bár a teljes kidobáshoz még nyílván sok idõ kell)
2) ahogy mondtam bonyolult (inkább hosszadalmas) vele dolgozni (kiv. a pixbuf sima megjelenítése és saját algoritmusokkal való babrálása). Arról nem is beszélve, hogy nem csak nehézkes a használata, de szegényes funkcionalitású és néhol hibásan is mûködik.
Egyébként, ha sima c, akkor ott van még a gimp is, a cairo mellett (bár én nem használtam)… meg, ha megfelelõ a gpl…2006-03-01-10:50 #2050862Hello!
„Az api ref (+példák, demo könyvtár a tarballban) nem elég?:”
Ezek nekem is meg vannak. Több a semminél, mert tudok velük vmit kezdeni, de sok idõ kell, amíg kihámozom, hogy mire van szükségem. Nekem egy olyan leírás kellene, mint pl. a gtk+ tutorial:
http://gtk.org/tutorial/„Egyébként még hátha hasznát veszed ennek is:
http://www.netbrain.com/~brain/book/”
Erre emlékszem, már néztem, de aztán elfelejtettem. Lehet itt van még 1-2 jó dolog.„2) ahogy mondtam bonyolult (inkább hosszadalmas) vele dolgozni (kiv. a pixbuf sima megjelenítése és saját algoritmusokkal való babrálása). Arról nem is beszélve, hogy nem csak nehézkes a használata, de szegényes funkcionalitású és néhol hibásan is mûködik.”
Ez alatt mit értesz?
Egy GdkPixmap-ba rajzolok, pl. a gdk_draw_rectangle-val, majd ezt jelenítem meg a monitoron.Tehát a gimp, cairo mellett tudsz még vmit ajánlani c-hez? Ami jó, elterjedt, kis erõforrás igényû, stb. ?
L a c i
2006-03-01-16:51 #2050863„Ez alatt mit értesz?”
használhatóság:
gtk:
deklarálsz gc-t
de ehhez deklarálni kell egy megjelenítõt
a gc-hez külön elõtér-, háttérszinhez függvény, mely alkalmazásához azonban szükség van egy
szin deklaráló függvényre és változókra
(persze ezek mehetnek egy sorban is egymásba ágyazva)ekkor már elkezdheted rajzolni egy megjelenítõ eseményfüggvényben rajzolgatni a rajzolnivalót… természetesen, minegyiknél gc, megjelenítõ pontosan külön külön megadva
ezzel szemben a cairo:
az eseményfüggvényban
cairo deklarálás
szin kiválasztás… nem idétlen egymásba ágyazott függvényekkel, hanem számokkal (amíg nem változtatod meg, addig az összes ezt használja, tehát még egy fölös gépelgetés megspórolása)
bármi rajzolása virtuálisan
megjelenítés
bármi ilyen változtatás, mint kitöltés más szinnel egy rövid parancs kérdése
(eddig nekem feleannyit kellett írnom cairoban…, de ez persze attól függ, hogy mit akarsz, de valószínû hosszabb nem lesz, viszont kizárt, hogy kevésbé átlátható legyen)szegény funkcionalitás:
de alkalmas 3d gradiens megrajzolására pár sorban, amit megnéznék, hogy egy gdk-val hány évig tartana leprogramozni, meg kiszámolnihibák:
pl. a képek bizonyos mértékû átméretezésnél torzulnak, sõt az alfából marhaság lesz… ilyeneket utoljára az excelben láttam 🙂
az elõtér-háttér, vonaltípus (gc) beállítások linux alatt jól, windows alatt viszont rosszul mûködnekNa ezek jutottak eszembe.
„Tehát a gimp, cairo mellett tudsz még vmit ajánlani c-hez?”
Nem elég? :)))„kis erõforrás igényû, stb. ?”
rajzold meg asm-ben :))))2006-03-01-16:56 #2050864„Egy GdkPixmap-ba rajzolok, pl. a gdk_draw_rectangle-val, majd ezt jelenítem meg a monitoron.”
Ha ez a probléma, akkor gdkpixbuf (rgb/rgba), saját függvénnyel történõ belerajzolás közvetlenül, majd megjelenítés a legegyszerûbb szerintem.2006-03-02-00:49 #2050865Hello!
Most már sikerült egy példaprogramot lebutítani, hogy csak létrehozok egy GTK+ ablakot, és ebbe rajzolok egy téglalapot. Egy GdkPixmap-ba rajzolok, pl. a gdk_draw_rectangle-val, majd ezt jelenítem meg a monitoron.
Ez mûködik.„1) ahogy mondtam, a fejlesztõk sem igazán ajánlják már (bár a teljes kidobáshoz még nyílván sok idõ kell)”
Ezt hol olvastad? Cairot ajánlanak helyette?
Cairo mennyire stabil, elterjedt?
A probléma ott kezdõdik, hogy beágyazott rendszerre (debian alapú) kellene a gui, és ez nincs rajta. Tehát csak akkor érdemes azzal szórakozni, hogy telepítem rá, ha ez tényleg megéri.„rajzold meg asm-ben”
Olyanra gondoltam, amihez nem kell nagyobb gép a GDK+ -nál. Tehát nem kell akorra erõforrásigény, mint pl. a swing-nek.
De az assembly se rossz! Kedvenc nyelvem! 🙂 Bár linux alatt nem nyomtam.nem gui:
Akkor a glibet is mellõzzem? Azt se tûnik egyszerûnek. Mivel érdemes kollekciókat, és az ehhez kapcsolódó mûveleteket használni? (Még mindig c.)L a c i
2006-03-04-19:56 #2050866„Ezt hol olvastad?”
http://gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/ch15.html
„… GDK drawing functions, but this has been largely superceded by the Cairo graphics library.. deprecated GDK techniques… In general, the Cairo drawing API is simpler than the GDK one, and it is generally recommended to use the Cairo drawing methods wherever possible in preference to the older GDK drawing methods.”aztán itt van egy hasonló példa is:
cairo:
„Cairo::RefPtr myContext = myArea.get_window()->create_cairo_context();
myContext->set_source_rgb(1.0, 0.0, 0.0);”gdk:
„Gdk::GC some_gc;
some_gc.create(get_window());
Gdk::Color some_color;
Gdk::Colormap some_colormap(Gdk::Colormap::get_system());
some_color.set_red(65535);
some_color.set_green(0);
some_color.set_blue(0);
some_colormap.alloc(some_color);
some_gc.set_foreground(some_color);”„A probléma ott kezdõdik, hogy beágyazott rendszerre (debian alapú) kellene a gui, és ez nincs rajta. Tehát csak akkor érdemes azzal szórakozni, hogy telepítem rá, ha ez tényleg megéri.”
Olvasd el a doksit, meg a példákat és meglátod…2006-03-05-18:32 #2050867Kösz!
Ehhez nincs ötleted?nem gui:
Akkor a glibet is mellõzzem? Azt se tûnik egyszerûnek. Mivel érdemes kollekciókat, és az ehhez kapcsolódó mûveleteket használni? (Még mindig c.) -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz