Компоновка виджетов (gtk.HBox, gtk.VBox)

Когда вы будете создавать приложение, то захотите разместить в окне более одного виджета. Наш первый пример, “Привет, мир!”, использовал только один виджет, поэтому мы просто использовали метод add() из gtk.Container для того чтобы разместить виджет в окне. Но когда вы захотите поместить на окно ещё один виджет, то как вы будете управлять его положением? Именно здесь и необходимо размещение (packing), или компоновка.

4.1. Теория размещающих коробок

Большинство компоновок делается с помощью коробок. Коробка это невидимый виджет, в который мы можем разместить наши виджеты, который имеет две формы: horizontal box, и vertical box. Когда мы размещаем виджеты в горизонтальной коробке, они вставляются горизонтально, слева направо или справа налево, в зависимости от используемого вызова. В вертикальной коробке виджеты размещаются сверху вниз или снизу вверх. Вы можете использовать любые комбинации коробок, вкладывать одну или несколько коробок внутрь другой коробки для достижения желаемого эффекта.

Для того чтобы создать горизонтальную коробку используется вызов gtk.HBox(), а для вертикальных коробок gtk.VBox(). Методы pack_start() и pack_end() используются для размещения объектов внутрь этих контейнеров. Метод pack_start() будет начинать сверху и продвигаться вниз в VBox, или слева направо в HBox. Метод pack_end() будет наоборот, размещать снизу вверх в VBox, либо справа налево в HBox. Используя эти методы мы можем размещать виджеты с любой стороны, и смешивать эти методы для достижения желаемого эффекта. В большинстве примеров мы будем использовать pack_start(). Объект, помещаемый внутрь коробки, может быть быть либо другим контейнером, либо конкретным виджетом. По сути, большинство виджетов тоже являются контейнерами и содержат сами себя, например, кнопка (но обычно используется только метка, находящуюся внутри кнопки).

Используя эти вызовы, вы даёте GTK знать о том, где вы хотите разместить ваши виджеты,  позволить ли им делать автоматическое изменение размера, либо какие-то другие модные действия. Также присутствует набор настроек для подстройки размещения виджетов. Как вы теперь можете представить, этот метод даёт весьма много гибкости в размещении и создании виджетов.


Предыдущая страница На уровень выше  Следующая страница
3.2. Улучшаем “Привет, Мир!” К оглавлению  4.2. Подробнее о коробках

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>