3.2.3 GtkTable

Второй, наиболее часто используемый контейнер раскладки -- это GtkTable. GtkTable делит область на ячейки; вы можете присвоить каждый дочерний виджет прямоугольнику, сделанному из одной и более ячеек. Вы можете думать о GtkTable как о разлинованном листке бумаги (с большей гибкостью -- линии сетки не обязаны быть равноудаленными, хотя могут и быть).

У GtkTable имеется обычный конструктор, и несколько функций для присоединения детей к ней; они показаны в списке функций 3..4. При создании таблицы, вы можете указать число ячеек, которые вы планируете использовать; это нужно просто для эффективности. Таблица будет автоматически расти, если вы будете помещать детей в ячейки, которые лежат за пределами текущей области. Как и блоки, таблицы могут быть равномерными и нет.

Список функций 3..4: GtkTable
"#include "<gtk/gtktable.h>
GtkWidget *gtk_table_new(guint rows, guint columns, gboolean homoheneous) GtkWidget *gtk_table_attach(GtkTable *table, GtkWidget *child, guint left_side, guint right_side, guint top_side, guint bottom_side, GtkAttachOptions xoptions, GtkAttachOptions yoptions, guint xpadding, guint ypadding)

Первые два аргумента в "gtk_table_attach()" -- это таблица и ребенок, которого нужно поместить в таблицу. Следующие четыре указывают, какие линии сетки будут формировать обрамляющий блок для ребенка. Линии сетки нумеруются с верхнего левого (северо-западного) угла таблицы, начиная с 0; таким образом таблица размером 2 на 3 будет включать вертикальные линии 0, 1, 2 и горизонтальные линии 0, 1, 2, 3. Последние два аргумента -- это величина набивки слева и справа от ребенка (xpadding) и сверху и снизу (ypadding). Это аналогично набивке блоков.

Аргументы GtkAttachOptions требуют некоторого объяснения. Вот изложение их возможных значений. Значения являются битовыми масками, таким образом больше одного значения может быть указано через операцию | (OR).

Можно установить пробелы между строками и колонками в дополнение к набивке вокруг отдельных детей; термины пробелы и набивка означают одно и то же применительно к таблицам и блокам. Смотрите "gtk/gtktable.h" для получения полного списка функций GtkTable.



Подсекции

Linux Land
2000-09-15