Вход/Регистрация
Язык программирования Python
вернуться

Сузи Роман Арвиевич

Шрифт:

Toplevel (Окно верхнего уровня) Показывается как отдельное окно и содержит внутри другие виджеты.

Все эти классы не имеют отношений наследования друг с другом — они равноправны. Этот набор достаточен для построения интерфейса в большинстве случаев.

События

В системе современного графического интерфейса имеется возможность отслеживать различные события, связанные с клавиатурой и мышью, и происходящие на «территории» того или иного виджета. В Tk события описываются в виде текстовой строки — шаблона события, состоящего из трех элементов (модификаторы, тип события и детализация события).

Тип события Содержание события

Activate Активизация окна

ButtonPress Нажатие кнопки мыши

ButtonRelease Отжатие кнопки мыши

Deactivate Деактивация окна

Destroy Закрытие окна

Enter Вхождение курсора в пределы виджета

FocusIn Получение фокуса окном

FocusOut Потеря фокуса окном

KeyPress Нажатие клавиши на клавиатуре

KeyRelease Отжатие клавиши на клавиатуре

Leave Выход курсора за пределы виджета

Motion Движение мыши в пределах виджета

MouseWheel Прокрутка колесика мыши

Reparent Изменение родителя окна

Visibility Изменение видимости окна

Примеры описаний событий строками и некоторые названия клавиш приведены ниже:

"<ButtonPress–3>" или просто "<3>" — щелчок правой кнопки мыши (то есть, третьей, если считать на трехкнопочной мыши слева–направо). "<Shift–Double–Button–1>" — двойной щелчок мышью (левой кнопкой) с нажатой кнопкой Shift. В качестве модификаторов могут быть использованы следующие (список неполный):

Листинг

Control, Shift, Lock,

Button1–Button5 или B1–B5,

Meta, Alt, Double, Triple.

Просто символ обозначает событие — нажатие клавиши. Например, «k» — тоже, что "<KeyPress–k>". Для неалфавитно–цифровых клавиш есть специальные названия:

Листинг

Cancel, BackSpace, Tab, Return, Shift_L, Control_L, Alt_L,

Pause, Caps_Lock, Escape, Prior, Next, End, Home, Left,

Up, Right, Down, Print, Insert, Delete, F1, F2, F3, F4, F5, F6, F7,

F8, F9, F10, F11, F12, Num_Lock, Scroll_Lock, space, less

Здесь <space> обозначает пробел, а <less> - знак меньше. <Left>, <Right>, <Up>, <Down> - стрелки. <Prior>, <Next> - это PageUp и PageDown. Остальные клавиши более или менее соответствуют надписям на стандартной клавиатуре.

Примечание:

Следует заметить, что Shift_L, в отличие от Shift, нельзя использовать как модификатор.

В конкретной среде комбинации, означающие что–то особенное в системе, могут не дойти до графического приложения. Например, известный всем Ctrl–Alt–Del.

Следующая программа позволяет печатать направляемые виджету события, в частности — keysym, а также анализировать, как различные клавиши можно представить в шаблоне события:

Листинг

from Tkinter import *

tk = Tk # основное окно приложения

txt = Text(tk) # текстовый виджет, принадлежащий окну tk

txt.pack # располагается менеджером pack

# функция обработки события

def event_info(event):

txt.delete(«1.0», END) # удаляется с начала до конца текста

for k in dir(event): # цикл по атрибутам события

if k[0] != "_": # берутся только неслужебные атрибуты

# готовится описание атрибута события

ev = "%15s: %s\n» % (k, repr(getattr(event, k)))

txt.insert(END, ev) # добавляется в конец текста

# привязывается виджету txt функция event_info для обработки событий,

# соответствующих шаблону <KeyPress>

txt.bind("<KeyPress>", event_info)

tk.mainloop # главный цикл обработки событий

При нажатии клавиши Esc в окне можно увидеть примерно следующее:

Листинг

char: '\x1b'

delta: 9

height: 0

keycode: 9

keysym: 'Escape'

keysym_num: 65307

num: 9

send_event: False

serial: 159

state: 0

time: — 1072960858

type: '2'

widget: <Tkinter.Text instance at 0x401e268c>

width: 0

x: 83

x_root: 448

y: 44

y_root: 306

Следует объяснить некоторые из этих атрибутов:

  • Читать дальше
  • 1
  • ...
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: