Уроки Tk

Начало Уроки Tk Файлы
Статьи Уроки Tcl Гостевая книга
Предыдущий урок - #05: Ввод текста - entry

#06: Расположение виджетов - pack

В прошлых занятиях описывалось, как создавать самые простые и распространённые виджеты. В этом же уроке будет рассмотрена команда для вывода их на экран. Вообще, команд для расположения виджетов две - pack и place. Я рекомендую пользоваться pack, так как эта команда располагает виджеты не на фиксировынных позициях, а относительно свободного места и размеров окна.

Синтаксис команды pack следующий:

pack опции агр ?арг ... ?

Команда pack может иметь несколько форм, в зависимости от аргумента опции.

pack виджет ?виджет ...? ?опции?
    Если первый аргумент команды - то это имя виджета (любое значение начинающееся с "."), то эта команда работает аналогично pack configure.
pack configure виджет ?виджет ...? ?опции?
    Аргументы - имена одного или более виджетов, за которыми следуют аргументы, определяющие как менеджер окон будет управлять виджетами:
  • -after виджет
    Новые виджеты будут расположены после указанного виджета.
  • -anchor позиция
    Позиция указывает расположение виджета, например n (North - север) или sw (South-West - юго-запад - нижний левый угол). Значение по умолчанию - center (центр).
  • -before виджет
    Новый виджет будет расположен после указанного виджета.
  • -expand логическое значение
    Эта опция задаёт, может ли виджет быть растянут на всё свободное место. Возможное значение - да (yes, 1, true) или нет (no, 0, false). По умолчанию 0.
  • -fill стиль
    Указывает, в каких направлениях можно растягивать виджет. Возможные значения: none - не растягивать, x - растягивать по горизонтали, y - по вертикали, both - по обоим измерениям.
  • -in окно
    Вставляет новый виджет в окно.
  • -ipadx размер
    Задаёт размер пустого пространства по горизонтали внутри, с обеих сторон виджета. По умолчанию 0.
  • -ipady размер
    Задаёт размер пустого пространства по вертикали внутри, с обеих сторон виджета. По умолчанию 0.
  • -padx размер
    Задаёт размер пустого пространства по горизонтали снаружи, по обеим сторонам виджета. По умолчанию 0.
  • -pady размер
    Задаёт размер пустого пространства по вертикали снаружи, по обеим сторонам виджета. По умолчанию 0.
  • -side сторона
    Указывает с какой стороны относительно следующих будет находиться этот виджет. Возможные значения - left, right, top или bottom. По умолчанию - top, то есть, текущий виджет будет находиться над следующими.
Если опции -in, -after или -before не заданы, то виджеты вставляются один за другим.
pack forget виджет ?виджет ...?
    Удаляет виджет с экрана.
pack info виджет
    Возвращает список, элементы которого - текущее состояние виджета в виде, который можно передать команде pack configure.
pack propagate окно ?булевское значение?
    Если булевское значение - 1 или on, то при изменении размеров окна находящиеся в нём виджеты будут тоже изменены в размерах.
pack slaves виджет
    Возвращает список виджетов, которые строятся после виджета.

Все виджеты строятся в окне в определенном порядке, если опции -after, -before или -in не заданы, то в порядке указания их в команде pack. Таким образом, если все виджеты не влезают в окно, то последние не отображаются в окне.

Выполните пример и переходите к следующему упражнению. Обратите внимание, что если при виджете entry или button в команде pack не указана опция -expand 1, то они не растягиваются по высоте.

Пример:


button .b1 -text Button1
button .b2 -text Button2
button .b3 -text Button3

pack .b1 -side bottom
pack .b2 -ipady 10 -fill x
pack .b3 -padx 10 -fill both -expand yes

Горбачев "Yurez" Юрий  
Хостинг от uCoz