в описании команд для кнопок; он изменяет текст метки по мере того, как текущая температура уменьшается или увеличивается. Мы уже говорили, что таким образом почти все атрибуты можно изменять во время выполнения, причем изменение отображается на экране незамедлительно.
Упомянем еще две операции над текстовыми кнопками. Метод
justify
принимает один параметр (
"left"
,
"right"
или
"center"
), определяющий выравнивание текста внутри кнопки (по умолчанию подразумевается
"center"
). Мы говорили, что можно отображать многострочный
текст; метод
wraplength
задает номер колонки, в которой происходит перенос слова.
Стиль кнопки можно изменить методом
relief
, придав ей трехмерный вид. В качестве параметра этому методу можно передать одну из строк:
"flat"
,
"groove"
,
"raised"
,
"ridge"
(по умолчанию),
"sunken"
или
"solid"
. Методы
width
и
height
явно задают размеры кнопки. Имеется также метод
borderwidth
и аналогичные. О других атрибутах (которых немало) вы можете прочесть в руководстве.
Рассмотрим еще один пример использования кнопки. На этой кнопке будет изображение, а не просто текст.
Я создал GIF-файлы с изображениями стрелок, указывающих вверх и вниз (
up.gif
и
down.gif
). Для получения ссылок на них можно воспользоваться классом
TkPhotoimage
, а затем передать эти ссылки в качестве параметров при создании кнопок.
Здесь просто заменены некоторые строки в первом примере. Если не считать внешнего вида кнопок, то поведение не изменилось. На рис. 12.2 показано окно приложения.
Рис. 12.2. Имитация термостата (с графическими кнопками)
12.1.4. Текстовые поля
Чтобы отобразить поле для ввода текста и манипулировать им, применяется виджет
TkEntry
. Как и следовало ожидать, для указания размера, цвета и поведения предусмотрены многочисленные атрибуты. Мы приведем довольно объемный пример, иллюстрирующий применение некоторых из них.
Поле ввода полезно лишь, если существует способ получить введенное в него значение. Обычно поле связывается с переменной (если быть точным, с объектом
TkVariable
), хотя можно воспользоваться и методом
get
.
Предположим, что мы разрабатываем telnet-клиент, который принимает четыре параметра: адрес хоста, номер порта (по умолчанию 23), имя пользователя и его пароль. Для красоты добавим еще две кнопки для операций «войти» и «отменить».
В представленном фрагменте используются фреймы, чтобы форма выглядела аккуратнее. Правда, написанный код не переносим, и настоящий знаток Tk с презрением отверг бы его. Но просто для сведения мы все-таки документировали
этот «небрежный» подход к организации информации на экране.
Вид окна показан на рис. 12.3, а код — в листинге 12.2.