Π ΡΠ°Π±Π». 16.1 ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ
gtk_box_pack_startgtk_box_pack_endΠ’Π°Π±Π»ΠΈΡΠ° 16.1
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
GtkBox *box | ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠΏΠ°ΠΊΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ |
GtkWidget *child | ΠΠΈΠ΄ΠΆΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΡΠΏΠ°ΠΊΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ |
gboolean expand | ΠΡΠ»ΠΈ ΡΠ°Π²Π΅Π½ TRUETRUE |
gboolean fill | ΠΡΠ»ΠΈ ΡΠ°Π²Π΅Π½ TRUEexpandTRUE |
guint padding | Π Π°Π·ΠΌΠ΅Ρ ΠΎΡΡΡΡΠΏΠ° Π²ΠΎΠΊΡΡΠ³ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ |
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΎΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΏΠ°ΠΊΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ (ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 16.3).
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Ρ ΡΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²-ΠΌΠ΅ΡΠΎΠΊ ΡΠΈΠΏΠ°
GtkLabelGtkHBoxGtkVBox#include <gtk/gtk.h>void closeApp(GtkWidget *window, gpointer data) {Β gtk_main_quit();}/* ΠΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅Β Β close/destroy. (ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ TRUE.) */gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) {Β printf("In delete_event\n");Β return FALSE;}int main (int argc, char *argv[]) {Β GtkWidget *window;Β GtkWidget *label1, *label2, *label3;Β GtkWidget *hbox;Β GtkWidget *vbox;Β gtk_init(&argc, &argv);Β window = gtk_window_new(GTK_WINDOW_TOPLEVEL);Β gtk_window_set_title(GTK_WINDOW window), "The Window Title");Β gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);Β gtk_window_set_default_size(GTK_WTNDOW(window), 300, 200);Β g_signal_connect(GTK_OBJECT(window), "destroy",Β GTK_SIGNAL_FUNC(closeApp), NULL);Β g_signal_connect(GTK_OBJECT(window), "delete_event",Β GTK_SIGNAL_FUNC(delete_event), NULL);Β label1 = gtk_label_new("Label 1");Β label2 = gtk_label_new("Label 2");Β label3 = gtk_label_new("Label 3");Β hbox = gtk_hbox_new(TRUE, 5);Β vbox = gtk_vbox_new(FALSE, 10);Β gtk_box_pack_start(GTK_BOX(vbox), label1, TRUE, FALSE, 5);Β gtk_box_pack_start(GTK_BOX(vbox), label2, TRUE, FALSE, 5);Β gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5);Β gtk_box_pack_start(GTK_BOX(hbox), label3, FALSE, FALSE, 5);Β gtk_container_add(GTK_CONTAINER(window), hbox);Β gtk_widget_show_all(window);Β gtk_main();Β return 0;}ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡ Π΅ΠΌΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²-ΠΌΠ΅ΡΠΎΠΊ Π² Π²Π°ΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ (ΡΠΈΡ. 16.6).

Π ΠΈΡ. 16.6
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π΄Π²Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΡΠΏΠ°ΠΊΠΎΠ²ΠΎΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²:
hboxvboxgtk_box_pack_startvboxlabel1label2label2label1vboxlabel3hboxΠ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
hboxgtk_widget_show_allΠ‘Ρ Π΅ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π»Π΅Π³ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½Π° ΡΠΈΡ. 16.7.

Π ΠΈΡ. 16.7
ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ²ΡΠΈΡΡ Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ, ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ, ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, Π²Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² GTK+. ΠΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ, ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΠΌ GTK+, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ.
ΠΠΈΠ΄ΠΆΠ΅ΡΡ GTK+
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ API ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² GTK+, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
GtkWindow
GtkWindowGtkWidgetΒ +----Β GtkContainer