Програмування реакції об’єктів на події
Можна зробити так, щоб об’єкт змінював свої властивості у відповідь на натискання зазначеної клавіші клавіатури або миші.
Віджет із подією й функцією-обробником події пов’язують викликом методу bind() (рис.3):
<віджет>.bind('<подія>', <функція>), де '<подія>' — текстова константа, системна назва події; <функція> — назва функції-обробника події.
Примітка: метод bind() (в програмі передостанній рядок) використовується для поєднання об’єкту, події та дії, що виконається при настанні даної події. В нашому випадку буде виконана процедура change (дія) при клацанні лівою кнопкою миші (подія) на створеному вікні (об’єкт)
Форми назв подій:
• Один символ — натискання клавіші клавіатури:
root.bind('z', action)
Функцію action буде викликано для віджета у вікні root, який має фокус, кожного разу, коли натиснуто клавішу z. Клавіши літер можна записувати без кутових дужок (наприклад, 'z').
'<Return>' — натискання клавіші Enter.
'<Enter>' — входження вказівника миші в межі віджета.
'<KeyPress-Up>', '<KeyPress-Down>', '<KeyPress-Left>', '<KeyPress-Right>' — натискання клавіш керування курсором.
'<Key>' — натискання будь-якої клавіші.
'<Button-1>' або '<1>' – клік лівою кнопкою миші.
'<Button-2>' — клік середньою кнопкою миші.
'<Button-3>' — клік правою кнопкою миші.
'<Double-Button-1>' або '<Double-1>' — подвійний клік лівою кнопкою миші.
'<Motion>' — рух миші.
Функція, яку буде викликано при настанні події, повинна приймати один аргумент. Це об’єкт класу Event, що має, серед інших, атрибути, які стануть вам у нагоді при створенні програм — наприклад, щоб змусити об’єкти рухатися по вікну:
х і y — координати вказівника миші на віджеті;
keysym — набраний на клавіатурі символ;
keysym_num — код набраного на клавіатурі символу.
Зверни увагу!
Обробник події має бути описаний вище, ніж виклик обробника події. Найчастіше опис функції-обробника події записують на початку тексту програми.