Hozzászólások
A GTK.org-on amiket talaltam tutorialokat azok sehol sem ismertetik hogy a gdk-pixbufot hogy kell hasznalni, csak a fuggvenyeket soroljak fel.
- A hozzászóláshoz be kell jelentkezni
Szia,
[quote:cd4d60c973="hygy"]A GTK.org-on amiket talaltam tutorialokat azok sehol sem ismertetik hogy a gdk-pixbufot hogy kell hasznalni, csak a fuggvenyeket soroljak fel.
A gdk-pixbuff-ra "direktben" akarsz rajzolni? Akarsz rajzoló alapműveleteket használni (vonal, kör, stb)?
Üdv: Bálint
- A hozzászóláshoz be kell jelentkezni
[quote:17125aa318="hygy"]A GTK.org-on amiket talaltam tutorialokat azok sehol sem ismertetik hogy a gdk-pixbufot hogy kell hasznalni, csak a fuggvenyeket soroljak fel.
Ja, és szerintem a glade-et nem nagyon érdemes használni, én legalábbis sokkal gyorsabban haladtam nélküle, végülis elég profin van felépítve a gtk objektum-struktúra. És ha letöltöd a gtk forrást, abban van korekt doksi/tutorial is.
b.
- A hozzászóláshoz be kell jelentkezni
[quote:de2750e56e="qzy"]Szia,
[quote:de2750e56e="hygy"]A GTK.org-on amiket talaltam tutorialokat azok sehol sem ismertetik hogy a gdk-pixbufot hogy kell hasznalni, csak a fuggvenyeket soroljak fel.
A gdk-pixbuff-ra "direktben" akarsz rajzolni? Akarsz rajzoló alapműveleteket használni (vonal, kör, stb)?
Üdv: Bálint
Igen. Direktben is. Szoval eloszor egy GPS konzolt szeretnek csinalni, ami megjeleniti a muholdakat, amiket a GPS-bol kiolvas, es persze a jelerosseget meg par ilyen informaciot.
Ehhez be kell tolteni egy JPG kepet, es egyik reszere szovegeket kell rajzolni a masik reszere meg koroket akarok tenni a korok reprezentaljak majd a muholdakat.
A kovetkezo pedig az lenne, hogy egy olyan kodot csinalni ami ki bir rajzolni egy terkepet, annak meg gyorsnak kell lennie.
HyGy
- A hozzászóláshoz be kell jelentkezni
[quote:de5c0b6fab="hygy"]
Igen. Direktben is. Szoval eloszor egy GPS konzolt szeretnek csinalni, ami megjeleniti a muholdakat, amiket a GPS-bol kiolvas, es persze a jelerosseget meg par ilyen informaciot.
Ehhez be kell tolteni egy JPG kepet, es egyik reszere szovegeket kell rajzolni a masik reszere meg koroket akarok tenni a korok reprezentaljak majd a muholdakat.
A kovetkezo pedig az lenne, hogy egy olyan kodot csinalni ami ki bir rajzolni egy terkepet, annak meg gyorsnak kell lennie.
Mindjárt előbányászom a kódot, amivel én tudtam elegendően gyorsan rajzolni ahhoz, hogy egy méretes képen egy csík kövesse az egér mozgását (kicsit, mint a ruler widget-nél), csak most nem vagyok a gépem mellett.
Jpeg-et meg talán csuklóból is fel tudsz dobni a pixbuff-ra valami olyan hívással, ami file alapján inicializálja a struktúrát.
b.
b.
- A hozzászóláshoz be kell jelentkezni
[quote:15ee10c490="qzy"]
Mindjárt előbányászom a kódot, amivel én tudtam elegendően gyorsan rajzolni ahhoz, hogy egy méretes képen egy csík kövesse az egér mozgását (kicsit, mint a ruler widget-nél), csak most nem vagyok a gépem mellett.
Jpeg-et meg talán csuklóból is fel tudsz dobni a pixbuff-ra valami olyan hívással, ami file alapján inicializálja a struktúrát.
Valahogy lehetett mert anno csinaltam vele egy olyan reklam csikot ami a kepernyo tetejen mukodott es bannereket forgatott. De mar nagyon regen volt a forrasat annak nem talaltam meg es nem is emlexem ra. De tudom hogy magat a jpg-t nem volt nagy szam kitenni.
Koszi
hygy@freemail.hu
- A hozzászóláshoz be kell jelentkezni
[quote:95562fa056="hygy"]Talaltam valamit eleg jonak nez ki!
http://developer.gnome.org/doc/books/WGA/
HyGy
Aha, bár úgy tűnik, ez nem gtk/gdk, hanem kimondottan gnome cuccok fejlesztésére van (persze emiatt van köze a gtk-hoz is). Gondolom, ha portolhatónak akarod megtartani a progidat, akkor érdemes maradnod a gtk-nál. Ahhoz referencia és tutorial is van a gtk.org-on, én is ezt használom, meg a példaprogramokat, amik a gtk source-szal jönnek.
A mail címemet egyrészt megtalálod a profilomban, másrészt maradjunk szerintem a fórum használata mellett, hátha másoknak is jól jönnek az itt leírtak.
b.
- A hozzászóláshoz be kell jelentkezni
Eh tegnap szorakoztam a pixbufal es nem igazan akar ossze jonni. GTK-s ablakot akar kezzel tudok csinalni meg gombot meg mindent, de ez a pixbuf ez eh...
- A hozzászóláshoz be kell jelentkezni
[quote:29801690ce="qzy"]
Mindjárt előbányászom a kódot, amivel én tudtam elegendően gyorsan rajzolni ahhoz, hogy egy méretes képen egy csík kövesse az egér mozgását (kicsit, mint a ruler widget-nél), csak most nem vagyok a gépem mellett.
Bocs, most értem csak haza. :oops:
Na, nálam úgy van, hogy van egy drawable az ablakban, ahova rajzolok. Van egy pixmap változó, ami tartalmazza a képet, GdkPixmap típusú, gdk_pixmap_new-val hozom létre. Ide rajzolok bele, és aztán innen teszem ki az ablakba gdk_draw_pixmap-pel a kérdéses drawable widget expose event-jében. Ez kicsit lassú, viszont kényelmes.
Így teszem ki a képet:
[code:1:29801690ce]
gint drawingarea_expose_event( GtkWidget *widget,
GdkEventExpose *event,
gpointer data ) {
if (pixmap[(gint)data].image) {
gdk_draw_pixmap(widget->window,
widget->style->fg_gc[GTK_WIDGET_STATE(widget)],
pixmap[(gint)data].image,
event->area.x, event->area.y,
event->area.x, event->area.y,
MIN(event->area.width, pixmap[(gint)data].width),
MIN(event->area.height, pixmap[(gint)data].height));
}
return FALSE;
}
[/code:1:29801690ce]
Így rajzolok vonalat egy image-re (azaz ez nem jelenik meg azonnal a képernyőn, csak az expose után):
[code:1:29801690ce]
GdkColor *vertical_line_color;
GdkGC *vertical_line_gc;
vertical_line_gc = gdk_gc_new(pixmap[i].image);
calculate_rgb(LIGHTGREY, &red, &green, &blue);
vertical_line_color = (GdkColor *)malloc(sizeof(GdkColor));
vertical_line_color->red = red * (65535/256);
vertical_line_color->green = green * (65535/256);
vertical_line_color->blue = blue * (65535/256);
vertical_line_color->pixel = (gulong)(red*65536 + green*256 + blue);
gdk_colormap_alloc_color(gtk_widget_get_colormap(my_gtk_application_window.main_window), vertical_line_color, FALSE, TRUE);
gdk_gc_set_foreground(vertical_line_gc, vertical_line_color);
{
guint j = 0;
for (j=0;j<width;j+=10)
gdk_draw_line(pixmap[i].image, vertical_line_gc, j, 0, j, height);
}
free(vertical_line_color);
free(vertical_line_gc);
}
[/code:1:29801690ce]
Ha gyorsan kell belerajzolni az ablakba, és nem olyan fontos, hogy ez a memóriabeli image-ben is megjelenjen (egér pozícióját mutató segédvonalak, amik nem részei az alatta levő képnek), akkor közvetelnül is rá lehet rajzolni a drawable-re. Így:
[code:1:29801690ce]
void put_line(GdkDrawable *pdrawable, gint x1, gint y1, gint x2, gint y2, gint colorcode) {
gint width, height;
GdkColor *color;
GdkGC *gc;
guint red, green, blue;
calculate_rgb(colorcode, &red, &green, &blue);
gdk_drawable_get_size(pdrawable, &width, &height);
gc = gdk_gc_new(pdrawable);
color = (GdkColor *)malloc(sizeof(GdkColor));
color->red = red * (65535/255);
color->green = green * (65535/255);
color->blue = blue * (65535/255);
color->pixel = (gulong)(red*65536 + green*256 + blue);
gdk_colormap_alloc_color(gtk_widget_get_colormap(my_gtk_application_window.main_window), color, FALSE, TRUE);
gdk_gc_set_foreground(gc, color);
gdk_draw_line(pdrawable, gc, x1, height-y1, x2, height-y2);
free(color);
g_object_unref(gc);
}
[/code:1:29801690ce]
Remélem, segítettem.
Üdv: Bálint
- A hozzászóláshoz be kell jelentkezni
valami doksid nincs errol a gdk pixbufrol? :) Mert megmondom oszinten nem teljesen ertem ami kodreszletet irtal.
- A hozzászóláshoz be kell jelentkezni
Adnal egy email cimet? Ha adnal kerdeznek. :) Ha nem akarod nyilvanossagra hozni akkor hygy@freemail.hu-ra is dobhatsz levelet.
koszi :)
HyGy
- A hozzászóláshoz be kell jelentkezni
Hello!
Tud valaki valami olyan leirast (tutorialt) ami lepesenkent vegig vezetne az embert ezen a fenti 3 teman inkabb peldakon keresztul megkozelitve?
Elso korben annit szeretnek, hogy egy GTK ablak, ket reszre osztva a fentiben egy drawing area, amire mozgo objektumokat szeretnek tenni (spriteok) az also reszen meg egy menu par menupontal.
De ha tudtok valami egyeb jo cuccot (nem ragaszkodom a GTK-hoz. amit kesobb konnyu portolni windowsra/wince-re/familiar linuxkra (gtk, qt). Akkor azt is szivesen vennem. Vagy esetleg egy RAD cucc is jo lenne linuxra. Hja es az egesznek meg soros portot is kell kezelnie.
HyGy
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Hi!
Ha portolhatot akarsz, akkor allitolag a wxwindows is jo. Gtk-hoz meg van tutirial a www.gtk.org.on.
A soros port kezelese nem fugg attol, hogy gtk, gt, vagy mi, az ezektol total fuggetlen. Viszont azt nem tudom, hogy hogy kell portolni winre, mert szerintem az eleg Linux specifukus.
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni
[quote:1ff890d58f="hygy"]Hello!
Tud valaki valami olyan leirast (tutorialt) ami lepesenkent vegig vezetne az embert ezen a fenti 3 teman inkabb peldakon keresztul megkozelitve?
Elso korben annit szeretnek, hogy egy GTK ablak, ket reszre osztva a fentiben egy drawing area, amire mozgo objektumokat szeretnek tenni (spriteok) az also reszen meg egy menu par menupontal.
De ha tudtok valami egyeb jo cuccot (nem ragaszkodom a GTK-hoz. amit kesobb konnyu portolni windowsra/wince-re/familiar linuxkra (gtk, qt). Akkor azt is szivesen vennem. Vagy esetleg egy RAD cucc is jo lenne linuxra. Hja es az egesznek meg soros portot is kell kezelnie.
HyGy
Glade + python + pyglade + pyserial
A WINCE kivételével portolható.
http://www.pygtk.org/tutorial.html
Gödri
- A hozzászóláshoz be kell jelentkezni