Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 283

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

}

int main(int argc, char* argv[]) {

Β GtkWidget *window;

Β GtkWidget *button;

Β gtk_init(&argc, &argv);

Β window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

Β button = gtk_button_new_with_label("Hello World!");

Β gtk_container_add(GTK_CONTAINER(window), button);

Β g_signal_connect(GTK_OBJECT(button), "clicked",

Β  GTK_SIGNAL_FUNC(button_clicked), "Button 1");

Β gtk_widget_show(button);

Β gtk_widget_show(window);

Β gtk_main();

Β return 0;

}

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ сохранитС Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ gtk2.c. ΠžΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ скомпонуйтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ gtk1.с ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ упраТнСния. Запустив Π΅Π΅, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠΊΠ½ΠΎ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΡŒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ сообщСниС (рис. 16.5).

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image055.jpg

Рис. 16.5

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π’Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… элСмСнта Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ gtk2.c: Π²ΠΈΠ΄ΠΆΠ΅Ρ‚

GtkButton
ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°.
GtkButton
β€” это Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ простой ΠΊΠ½ΠΎΠΏΠΊΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ тСкст, Π² нашСм случаС "Hello World", ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ сигнал, Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ
clicked
, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ‰Π΅Π»ΠΊΠ°ΡŽΡ‚ ΠΌΡ‹ΡˆΡŒΡŽ.

Ѐункция ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°

button_clicked
связана с сигналом
clicked
Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
g_signal_connect
:

g_signal_connect(GTK_OBJECT(app), "clicked",

Β GTK_SIGNAL_FUNC(button_clicked), "Button 1");

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ имя ΠΊΠ½ΠΎΠΏΠΊΠΈ β€” "Button 1" β€” пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’Π΅ΡΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ касаСтся Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ, создаваСмой Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ β€” Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

gtk_button_new_with_label
β€” функция
gtk_widget_show
Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ.

Для располоТСния ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΎΠΊΠ½Π΅ вызываСтся функция

gtk_container_add
. Π­Ρ‚Π° простая функция ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚
GtkWidget
Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
GtkContainer
ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:Β 

void gtk_container_add(GtkContainer* container, GtkWidget *widget);
Β 

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅,

GtkWindow
β€” ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
GtkContainer
. поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ привСсти Ρ‚ΠΈΠΏ вашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-ΠΎΠΊΠ½Π° ΠΊ Ρ‚ΠΈΠΏΡƒ
GtkContainer
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроса
GTK_CONTAINER
:

gtk_container_add(GTK_CONTAINER(window), button);

Ѐункция

gtk_container_add
прСкрасно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для располоТСния Π² ΠΎΠΊΠ½Π΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅ Π²Π°ΠΌ потрСбуСтся для создания Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ интСрфСйса Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ нСсколько Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π² Ρ€Π°Π·Π½Ρ‹Ρ… частях ΠΎΠΊΠ½Π°. Π£ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° GTK+ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΊΠ°ΠΊ Ρ€Π°Π· для этой Ρ†Π΅Π»ΠΈ, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²,

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

Компоновка GUI ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½Π° для удобства примСнСния интСрфСйса, ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ всСго. РСальная Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ Π² Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρƒ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠΎΠ½, Ρ‚Π΅ΠΌ, ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… схСм. Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ интСрфСйсом для ΠΎΠ΄Π½ΠΎΠΉ систСмы, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ просто Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

Для создания GUI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π²ΠΎ всСх систСмах, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ размСщСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π½Π° основС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΡƒΡŽ систСму ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. Π£ GTK+ Π΅ΡΡ‚ΡŒ для этой Ρ†Π΅Π»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π² ΠΎΠΊΠ½Π°Ρ… вашСго прилоТСния. Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (box) ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. GTK+ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², описанных Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ GTK+.

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² β€” Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Π·Π°Π΄Π°Ρ‡Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ»ΠΈ схСмой размСщСния. Для управлСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², содСрТащихся Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π²Ρ‹ Π·Π°Π΄Π°Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° вмСсто ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

GtkWidget
ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
GtkBox
сам являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ°
GtkWidget
, для создания слоТных ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ΄ΠΈΠ½ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Π£ Ρ‚ΠΈΠΏΠ°

GtkBox
ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° основных подкласса:

β–‘Β 

GtkHBox
β€” однострочный Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€;

β–‘Β 

GtkVBox
β€” одностолбцовый Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

ПослС создания ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² слСдуСт Π·Π°Π΄Π°Ρ‚ΡŒ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

homogeneous
ΠΈ
spacing
:

<b>GtkWidget* gtk_hbox_new(gboolean homogeneous, gint spacing);</b>

<b>GtkWidget* gtk_vbox_new(gboolean homogeneous, gint spacing);</b>

Π­Ρ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ всСх Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

homogeneous
β€” логичСский, Ссли ΠΎΠ½ Ρ€Π°Π²Π΅Π½
TRUE
, Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ нСзависимо ΠΎΡ‚ ΠΈΡ… ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
spacing
Π·Π°Π΄Π°Π΅Ρ‚ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ Π² пиксСлах.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ создан, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

gtk_box_pack_start
ΠΈ
gtk_box_pack_end
:

<b>void gtk_box_pack_start(GtkBox *box, GtkWidget *child,</b>

<b>Β gboolean expand, gboolean f ill, guint padding);</b>

<b>void gtk_box_pack_end(GtkBox *box, GtkWidget *child,</b>

<b>Β gboolean expand, gboolean fill, guint padding);</b>

Ѐункция

gtk_box_pack_start
вставляСт Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, начиная ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ края ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
GtkHBox
ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ края ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
GtkVBox
; функция
gtk_box_pack_end
, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΊΡ€Π°Π΅Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ расстояниСм ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, находящСгося Π² ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.