GTK+, GDK programozás

Kezdőlap Fórumok Programozás GTK+, GDK programozás

10 bejegyzés megtekintése - 1-10 / 29
  • Szerző
    Bejegyzés
  • #2050858
    pointux
    Felhasználó

      „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 :))))

      #2050859
      lacix
      Felhasználó

        Hello!

        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?

        #2050860
        lacix
        Felhasználó

          Maradné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).

          #2050861
          pointux
          Felhasználó

            „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…

            #2050862
            lacix
            Felhasználó

              Hello!

              „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

              #2050863
              pointux
              Felhasználó

                „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ámolni

                hibá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ödnek

                Na 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 :))))

                #2050864
                pointux
                Felhasználó

                  „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.

                  #2050865
                  lacix
                  Felhasználó

                    Hello!

                    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

                    #2050866
                    pointux
                    Felhasználó

                      „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…

                      #2050867
                      lacix
                      Felhasználó

                        Kö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.)

                      10 bejegyzés megtekintése - 1-10 / 29
                      • Be kell jelentkezni a hozzászóláshoz.