Уроки Tk
#02: Метка - label |
label ("лэйбл") - простейший widget ("виджет" - элемент интерфейса). Служит для вывода текста, а так же примитивных картинок.
Создаётся label так: label имя ?опции?
Все виджеты создаются аналогично. При создании возвращается имя виджета, поэтому можно одной строчкой создать и вывести виджет:
pack [label .lab -text Hi]
имя - имя данного экземпляра. Как и все имена виджетов должен содержать путь. В простейшем случае - имя начинается с точки, так как точка (".") - имя окна главного окна, на котором расположен виджет.
Опции - в них указываются все параметры виджета. Даже у label их около 30. Но это не повод для паники :-), так как во-первых имена у опций очень говорящие, во-вторых большинство из них стандартные для многих виджетов.
Чаще всего используется опция -text текст, в которой указывается текст, который будет содержать виджет. Или можно использовать опцию -textvariable имяПерем, с помощью которой переменная привязывается к содержимому виджета. При изменении переменной новое значение сразу отображается в виджете. Удобно ведь?
Опции для виджетов можно задавать при создании, но можно и менять в ходе выполнения командой configure. Синтаксис следующий:
имяВиджета configure опция значение ?опцияN значениеN?
Для получения текущих значений опций существует команда cget:
имяВиджета cget опция
Эта команда возвратит значение опции.
Все стандартные опции будут рассмотрены в следующем уроке. В каждом виджете используется какая-то часть из них. Стандартные опции для label:
Специфичные для label опции:
-compund | |
Определяет, как будет отображен текст, и как будет расположено изображение или текст. Возможные значения: bottom, conter, left, none, right, top. По умолчанию значение none, это означает, что текст или изображение будут расположены в соответствии со значениями опций -image и -bitmap. | |
-height | |
Определяет высоту метки. Для изображения это значение будет высотой картинки, для текста - это количество строк. Если значение не задано, то размер label будет определяться размером изображения или текста. | |
-state | |
Задаёт состояние label: normal (нормальный), active (выделенный) или disabled (отключенный). | |
-width | |
Определяет ширину метки. Для изображения это значение будет шириной картинки, для текста - это количество символов в строке. Если значение не задано, то ширина label будет определяться размером изображения или текста. |
Выполните пример, попробуйте сделать так, чтобы метки растягивались по ширине на всё окно, возможно для этого вам придётся заглянуть в предыдущее упражнение.
foreach {id day} { 1 Понедельник 2 Вторник 3 Среда 4 Четверг 5 Пятница 6 Суббота 7 Воскресенье } { pack [label .l$id -text $day] } set name "[.l1 cget -text] - день тяжелый" .l1 configure -text $name |
Горбачев "Yurez" Юрий |