Шаг 7 - Подробное описание функций контейнеров

Как я и обещал, в этом шаге будут рассмотрены подробные описания функций создания и модификации контейнеров. Первая функция, которой скорее всего будут пользоваться:

GtkWidget *gtk_hbox_new (gint homogeneous, gint spacing);
GtkWidget *gtk_vbox_new (gint homogeneous, gint spacing);

Труднопроизносимый аргумент homogeneous отвечает за автоматическое распределение пространства для объектов. Если этот аргумент TRUE, то все объекты в вертикальном контейнере имеют одинаковую высоту, а в горизонтальном - ширину. Аргумент spacing контролирует расстояние (в пикселях) между объектами...

После того, как контейнер создан, необходимо добавить в него виджеты:

void gtk_box_pack_start (
	GtkBox *box,
	GtkWidget *child,
	gint expand,
	gint fill,
	gint padding
);
void gtk_box_pack_end (
	GtkBox *box,
	GtkWidget *child,
	gint expand,
	gint fill,
	gint padding
);

Единственная разница между этими двумя функциями в том, что gtk_box_pack_start при соответствии прочих параметров выравнивает виджеты по левому краю, а gtk_box_pack_end по правому.

Обратите внимание, что первый аргумент (сам контейнер) имеет тип GtkBox, поэтому необходимо использовать приведение типа GTK_BOX или заранее объявлять переменную как GtkBox*. Второй аргумент определяет виджет, который упаковывается.

Если параметр expand установлен в TRUE, то виджеты автоматически центрируются в контейнере (занимает всю отведенную для этого площадь). Иначе можно выполнить выравнивание налево или направо, в зависимости от того, какую из двух функций вы используете.

После всех этих добавлений нужно отобразить сам контейнер и находящиеся в нем компоненты:

void gtk_widget_show (GtkWidget* widget);

А еще нужно не забыть сам контейнер добавить в само окно - тоже разновидность контейнера...

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

Это обычный порядок действий при распределении компонентов по окну. В следующием шаге мы рассмотрим альтернативный вариант - размещения в таблице.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Аванесов Самвел.