Π£Π΄ΠΎΠ±Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GLib ΠΈ GObject ΠΏΠΎΡΡΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ. Glib ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² GTK+, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° GTK+, ΡΠΎ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Glib ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°. ΠΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° GTK+ Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» glib.h.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² GTK+
ΠΡΠ΅, Ρ ΠΊΠΎΠ³ΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ GUI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠΉΠΌΡΡ Π½Π°ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ ΠΏΡΠΈΠ²Π΅ΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GUI ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΠΠ), Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ GTK+, Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΡΠΈΠ»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² GTK+ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠΈΡΡΠΎΠΌ Π‘, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΠΠ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ GObject. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ².
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² GtkWindow, Π²Π·ΡΡΠΎΠΉ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ GTK+ API.
GObject
+---GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----GtkBin
+----GtkWindow
ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ GtkWindow β ΠΏΠΎΡΠΎΠΌΠΎΠΊ GtkBin, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π»ΡΠ±ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ GtkBin, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ GtkWindow. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ GtkWindow Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° GtkContainer, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° GtkWidget.
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΈΠΏ GtkWidget. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
GtkWidget* gtk_window_new(GtkWindowType type);
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ GtkWindow ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° GtkContainer, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΡΡ, ΠΊΠ°ΠΊ gtk_container_add:
void gtk_container_add(GtkContainer* container, GtkWidget *widget);
ΠΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡ GTK_CONTAINER Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² GtkWidget ΠΈ GtkContainer:
GtkWidget * window = gtk_window_new(GTK GTK_WINDOW_TOPLEVEL);
gtk_container_add(GTK_CONTAINER(window), awidget);
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅; ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΌΠ΅ΡΡΡΠ΅ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΠ°ΡΡΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΎΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π²ΡΠ΅ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ; Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΠΠ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠΈΡΡ GNOME/GTK+. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΠ²ΠΎΠΈΡΡ ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΠΠ Π½Π° Π±Π°Π·Π΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ Π²Π°ΠΌ ΡΠ·ΡΠΊΠ° Π‘.
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ GNOME
GNOME β ΠΈΠΌΡ, Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π½Π°ΡΠ°ΡΠΎΠΌΡ Π² 1997 Π³. ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ, ΡΠ°Π±ΠΎΡΠ°Π²ΡΠΈΠΌΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ GNU Image Manipulation Program (GIMP) Π½Π°Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° Π΄Π»Ρ Linux. ΠΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½Ρ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ±ΠΎΡ ΠΠ‘ Linux ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΡΠΎΡΠΌΠΎΠ·ΠΈΠ»ΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» Linux Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π» ΠΠΈΠΊΠΈΠΉ ΠΠ°ΠΏΠ°Π΄ Π±Π΅Π· ΠΎΠ±ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΈΠ»ΠΈ Π²ΡΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠΈΠ΅ΠΌΠΎΠ², ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΌΠΎΠ³Π»ΠΈ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ Π²Π·Π΄ΡΠΌΠ°Π΅ΡΡΡ. ΠΠ΅Π· ΡΠ²ΠΎΠ΄Π½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΠΈ Ρ.Π΄., ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠΌ Π±ΡΠ»ΠΎ Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΡΠ°Π½Π½ΡΠΌ, Π° Π² Ρ ΡΠ΄ΡΠ΅ΠΌ β Π½Π΅ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌ.
ΠΡΡΠΏΠΏΠ° GNOME Π½Π°ΠΌΠ΅ΡΠ΅Π²Π°Π»Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» Π΄Π»Ρ ΠΠ‘ Linux Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPL, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΡΠΈΠ»ΠΈΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ°ΡΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π½ΡΠ°ΠΌΠΈ ΠΈ Π»ΡΡΡΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ GUI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΡ ΡΡΠ°ΡΠ°Π½ΠΈΠΉ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ: ΡΡΠ΅Π΄Π° GNOME β ΠΎΡΠ½ΠΎΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° Linux Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Fedora, Red Hat, Ubuntu, openSUSE ΠΈ Π΄Ρ. (ΡΠΈΡ. 16.1).
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ GNOME ΠΎΠ·Π½Π°ΡΠ°Π»ΠΎ GNU Network Object Model Environment (ΡΡΠ΅Π΄Π° ΡΠ΅ΡΠ΅Π²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ GNU), ΡΡΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ°Π½Π΅Π΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ Linux ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Microsoft OLE, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΡΠΎΠΈΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΈ ΡΠΎ, ΡΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ GNOME, β ΡΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΡΡΠΈΠ»ΠΈΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ.
Π ΠΈΡ. 16.1
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ GNOME/GTK+
ΠΠΎΠ»Π½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» GNOME ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ GNOME/GTK+ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π±ΠΎΠ»Π΅Π΅ 60 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° GNOME Ρ Π½ΡΠ»Ρ Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β ΡΡΡΡΠ°ΡΠ°ΡΡΠ°Ρ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π°. Π ΡΡΠ°ΡΡΡΡ, Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ GNOME/GTK+ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΠΏΡΡΡΡΠΊΠΎΠ²ΠΎΠ΅ Π΄Π΅Π»ΠΎ.
Π Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux Red Hat ΠΈ Fedora Π²Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Package Management (Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ), ΡΠ΅Π»ΠΊΠ½ΡΠ² ΠΌΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΠ΅Π½Ρ Applications (ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΈ Π²ΡΠ±ΡΠ°Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ Add/Remove Software (ΠΠΎΠ±Π°Π²ΠΈΡΡ/ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ). ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²ΠΈΡΡΡ Package Management (ΡΠΈΡ. 16.2), ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ»Π°ΠΆΠΎΠΊ GNOME Software Development (Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ GNOME). ΠΠ°Π³Π»ΡΠ½ΠΈΡΠ΅ Π² ΠΎΠ±Π»Π°ΡΡΡ Development (Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°) Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ GNOME/GTK+ 2, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ 2.x.Π ΠΈΡ. 16.2
Π ΡΠ»ΡΡΠ°Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ², ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΡ RPM-ΠΏΠ°ΠΊΠ΅ΡΡ, Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ RPM-ΠΏΠ°ΠΊΠ΅ΡΡ:
β‘ gtk2-2.10.11-7.fc7.rpm;
β‘ gtk2-devel-2.10.11-7.fc7.rpm;
β‘ gtk2-engines-2.10.0-3.fc7.rpm;
β‘ libgnome-2.18.0-4.fc7.rpm;
β‘ libgnomeui-2.18.l-2.fc7.rpm;
β‘ libgnome-devel-2.18.0-4.fc7.rpm;
β‘ libgnomeui-devel-2.18.1-2.fc7.rpm.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² fc7 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Linux Fedora 7. Π Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅Π³ΠΊΠ° ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΈΠΌΠ΅Π½Π°.
Π Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ Debian ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Debian ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Ubuntu, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ apt-get Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² GNOME/GTK+ Ρ ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΡΠΎΠ²-Π·Π΅ΡΠΊΠ°Π» (mirrors). ΠΠ»Ρ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ Web-ΡΠ°ΠΉΡΠ° http://www.gnome.org.
ΠΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ GTK+, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΈ ΠΈΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ (ΡΠΈΡ. 16.3).
$ gtk-demo
Π ΠΈΡ. 16.3
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Info (ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ) ΠΈ Source (ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄). ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Source (ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄) ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°. ΠΠ° Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 16.1.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 16.1. ΠΠ±ΡΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ GtkWindow
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ GTK+ Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ GUI β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Π°. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GTK+ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΈΠ· ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
1. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π΅ gtk1.Ρ:
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main();
return 0;
}
2. ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ gtk1.c Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ gcc gtk1.c -ΠΎ gtk1 `pkg-config --cflags --libs gtk+-2.0`
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΈ Π½Π°Π±ΠΈΡΠ°ΠΉΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π°ΠΏΠΎΡΡΡΠΎΡΡ, Π° Π½Π΅ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π°ΠΏΠΎΡΡΡΠΎΡΡ β ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π°ΠΏΠΎΡΡΡΠΎΡΡ β ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π·Π°ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π΅ Π²ΡΠ²ΠΎΠ΄ Π² ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Π°ΡΠ΅ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°ΡΠΊΡΡΡΡΡΡ (ΡΠΈΡ. 16.4).
$ ./gtk1
Π ΠΈΡ. 16.4
Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΎΠΊΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° Π²Π΅ΡΡ ΡΠΊΡΠ°Π½.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠΊΠ»ΡΡΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GTK+ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° #include <gtk/gtk.h>. ΠΠ°Π»Π΅Π΅ Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ GtkWidget.
ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GTK+ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ·ΠΎΠ² gtk_init, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ argc ΠΈ argv. ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ GTK+ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π»ΡΠ±ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ. Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ GTK+ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ Π»ΡΠ±ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ GTK+.
Π‘ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ gtk_window_new. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π΅Π΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏ: