„GTK+ programozás C nyelven” változatai közötti eltérés
Tartalom törölve Tartalom hozzáadva
KeFe (vitalap | szerkesztései) aNincs szerkesztési összefoglaló |
helyesírás |
||
3. sor:
Jelen leírás célja elsősorban a hiánypótlás. Sajnos nem találtam olyan átfogó, '''magyar nyelvű''' leírást, amely a különféle nyílt forráskódú rendszerek alatt (is) elérhető szabadon használható fejlesztőeszközökről szólna. Viszont véleményem szerint több ilyen alkalmazás születne, ha lenne egy részletesebb, példákkal illusztrált, magyar nyelvű leírás valamely ilyen függvénykönyvtár használatáról.<br>
Mivel én eléggé [[w:hu:GTK|GTK+]] rajongó vagyok, így ezt választottam eme kis leírás témájául, ebben érzem többé-kevésbé otthon magam. Célom nem a teljes részlegesség, ez nem is lehetne, hiszen egyrészt maga a [[w:hu:GTK|GTK+]] is szélsebesen fejlődik, mellyel nem feltétlenül tudok teljes mértékben lépést tartani. Nem mutathatok be mindent, de alapot adhatok, amelyen esetleg érdemes elindulni,
Jelen leíráshoz ajánlanék pár angol nyelvű oldalt, ha valaki szeretne egy adott témában komolyabban elmélyedni, esetleg másmilyen megközelítésre vágyik. Az első a [http://www.gtk.org/tutorial/ GTK 2.0 tutorial], amely nagypn hasznos olvasnivaló, a legalapvetőbb ismeretektől kezdve komoly szintig jut el, teljesen ésszerű megközelítéssel. Nem tudom, mennyire részletesen fogunk tudni majd kitérni a lista és faszerkezetet megjelenítő widgetek használatára, hiszen az eleve egy külön litánia lehetne, mindenesetre ajánlom az adott témába vágó [http://scentric.net/tutorial/ GTK 2.0 Tree View Tutorial] -t is. Illetve referenciaként hasznos elolvasni a [http://developer.gnome.org/doc/API/2.0/gtk/index.html GTK API] -t is, amely részletesen tárgyalja az egyes funkciókat is.
A leírás a [[w:hu:C programozási nyelv|C programozási nyelv]] ismeretét feltételezi, és ezt veszi alapul. Nem fog arra kitérni, hogyan kell használni a C nyelvet, ha erre van szükséged, javaslom a számtalan idevágó programozási szakkönyv egyikét. Nem fog mélyebben kitérni az általad használt C fordítóprogram használatára sem, csak olyan szinten, amely szükséges a példaprogramok lefordításához. Ez a dokumentáció a gcc fordítóprogram használatát fogja figyelembe venni, ha a rendszered ettől eltér, keresd meg a szükséges információkat.
Igyekeztem minden ismertetett példát kipróbálni és letesztelni, de ez nem garantálja a teljes hibamentességüket. Mindenesetre dolgozom rajta. A forrásprogramokban szereplő megjegyzések magyar nyelven olvashatóak, de nem használtam ékezeteket, hogy ez ne jelentsen nehézséget a kipróbálás során. A forrás formai tagolásánál az olvashatóságot és az egyes modulok jó elkülönülését tartottam szem
= A jelölésekről és szóhasználatról =
Kérlek, a
== Jelölésrendszer ==
A leírásban szereplő forráskódokat, illetve azok részleteit külön formázásként jelennek meg, hogy jobban elkülönüljön a körülötte található szövegtől, akkor is, ha az idézett rész mindössze egyetlen sorból áll. Ehhez azonban nem a táblázatkezelő parancsokat használjuk "csak" minden sor elé teszünk egy szóközt. A forráskódokban az egyes blokkok közti behúzás mértéke két szóköz. Ha a folyó szövegben kell egy-egy alprogram vagy függvény nevét megemlíteni, azt mindenképpen '''félkövér''' módon jelöljük, a végére kiírva a jelző zárójeleket. Ha egyéb, a
Ha egy teljes forrásállományt idézek a leírásban, akkor a forrás
== Szóhasználat ==
A leírásban több helyen is használom majd a ''szignál'' kifejezést. Ez nem azonos a Unix világban általánosan megszokott szignálok fogalmával (ahol mégis, ott külön felhívom a figyelmet erre), mert míg az
62. sor:
GtkWidget * main_window;
Ez a következő sor, amely érdekes lehet. Itt létrehozunk egy pointert, amely alkalmas arra, hogy a
gtk_init (&argc, &argv);
Ez a sor alaphelyzetbe hozza a rendszert, és beállít néhány hasznos tulajdonságot, ilyenek például a szignálkezelők, illetve leellenőrzi és feldolgozza a
main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
És igen, ki hitte volna, itt készül el az alkalmazás ablaka, amely számunkra is megjelenik. Látható, hogy a '''gtk_window_new ()''' függvény visszatérési értékét elmentjük a fentebb létrehozott pointerbe, hogy
gtk_widget_show (main_window);
Egy widget, legyen az ablak, nyomógomb,
gtk_main ();
83. sor:
== Típusátalakítás (castolás) ==
Mint bizonyára észrevehető volt, az ablak mutatóját egy GtkWidget típusú pointerben tároltuk el, pedig mennyivel
Mi is a GtkWidget valójában? Egy olyan ős-objektumtípus, amely minden GTK+ -beli objektum szülője, tőle van származtatva. Ezért vár ilyen típusú pointert a '''gtk_widget_show ()''' függvény, hiszen neki egyaránt le kell kezelnie azt, ha valaki egy ablakot, egy nyomógombot, esetleg egy
A típusátalakítás a GTK+ -ban nagyon egyszerű dolog. Minden widget-típusnak létezik egy párja, melyet az átalakításkor használhatunk, és amely nevét csupa nagybetűvel írjuk. Így lesz a ''GtkWidget'' -ből ''GTK_WIDGET'', és a ''GtkWindow'' -ból ''GTK_WINDOW'', és ehhez hasonlóan a többi widget-típus is. Zárójelben meg kell adni az átalakítandó pointert, és visszatérési értékként megkapjuk az átalakított párját.
És, hogy miért is volt fontos ezt elmondani?
90. sor:
== Változtassuk meg az ablak címsorát ==
Ott tartunk, hogy
A fentebb vázolt egyszerű szabály szerint szúrjuk be az alábbi sort a példaprogram forrásába, az ablak létrehozása után (gtk_window_new), de az ablak megjelenítése
gtk_window_set_title (GTK_WINDOW (main_window), "Hello!");
Fordítsuk újra le a programot az ott írt módon,
|