Уроки Tk

Начало Уроки Tk Файлы
Статьи Уроки Tcl Гостевая книга
Предыдущий урок - #01: Первая программа "Привет, мир".

#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

Следующий урок - #03: Стандартные опции
Горбачев "Yurez" Юрий  
Хостинг от uCoz