Уроки Tk

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

#04: Кнопка - button

В этом уроке будет рассмотрена кнопка, по-английски - button, тоже один из самых часто встречающихся виджетов. Кнопки как правило используются для запуска какого-нибудь кода. Хорошим стилем является привязка к каждой кнопке какого-нибудь сочетания клавиш, чтобы опытные пользователи могли работать с клавиатуры. В одном окне рекомендуется размещать не более пяти кнопок. Кнопка по умолчанию (та, которая будет нажата при нажатии пользователем клавиши Enter) выделяется рамкой. Будьте внимательны при выборе кнопки по умолчанию. Для кнопок выполняющих необратимые действия (например, удаление) при нажатии рекомендуется выводит диалог для подтверждения. Важные кнопки можно выделять цветом или размещать на них изображения.

Цвета в Tk

В Tk цвет задаётся словом. Есть определенное количество стандартных цветов, начиная с black (черный), white(белый), и так далее, в включая оттенки, примерно 750 английских названий цветов (!). Полный список можно увидеть на странице colors справки по Tk или часть в программе Color Demo, которую можно скачать в разделе Файлы. Но, есть и другой путь задания цвета - как в Web-дизайне (точнее, в HTML), сочитанием трех цифр в формате RGB (Red-красный Green-зеленый Blue-синий). Сначала ставится символ #, а потом три двузначных шестнадцатеричных цифры. Первая задаёт интенсивность красного, вторая - зеленого, третья синего. К примеру, #ff0000 - ярко-красный цвет, #ffff00 - ярко-желтый и так далее. Если все три оттенка одинаковые, то получаются оттенки серого, от черного (#000000) до белого (#ffffff).

С помощью опции -command задаётся команда, которая будет выполняться при нажатии на кнопку. Можно указать несколько команд, сгруппировав их фигурной скобкой. Но, я рекомендую всегда указывать не более одной команды, а лучше вызывать процедуру, так как в дальнейшем, при отладке и расширении программы это облегчит внесение изменений.

Синтаксис использования button аналогичен label и всем остальным виджетам. Стандартные опции для button:

Специфичные для button опции:

-command
    Задаёт команду, которая будет выполняться при нажатии на кнопку.
-compound
    Задаёт, как будут расположены текст и изображения, или как будут они расположены друг относительно друга. Возможные значения: bottom, center, left, none, right и top. Значение по умолчанию - none, значит, что button будет располагать текст или изображения в зависимости от опций -image и -bitmap
-default
    Задаёт одно из трех возможных состояний кнопки по умолчанию: normal, active (кнопка по умолчанию) или disabled (отключена).
-height
    Задаёт определенную высоту кнопки. Если значение не задано, то высота кнопки зависит от содержимого.
-overrelief
    Задаёт альтернативный рельеф для кнопки, который будет использоваться когда мышь над виджетом. эта опция может использоваться для создания кнопок в toolbar (панель инструментов), задавая следущие опции: -relief flat -overrelief raised. Значение по умолчанию - пустая строка.
-state
    Определяет состояние кнопки: normal (нормальное, отображается цветами заданными опциями foreground и background), active (нажатие Enter эквивалентно щелчку по кнопке, кнопка выделяется, кнопка рисуется цветами activeforeground и activebackground), disabled (кнопка отключена, отображается цветами disabledforeground и background).
-width
    Задаёт определенную ширину кнопки. Если значение не задано, то ширина кнопки зависит от содержимого.

Выполните пример, попробуйте сделать так, чтобы названия цветов писались по-русски и переходите к следующему уроку.

Пример:

label .name -textvariable name
pack .name -fill x

foreach {clr} {red orange yellow green lightblue blue violet} {
	button .$clr -text $clr -bg $clr -command "set name $clr;\
		.name configure -bg $clr" -relief groove
	pack .$clr -fill x
}


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