Поняття події
Програма із графічним інтерфейсом не просто виконує команди коду від початку до кінця, хід її виконання залежить від втручання користувача, який взаємодіє з програмою (натискає кнопки, вводить дані тощо, тобто створює події).
Подія — зовнішній вплив на об’єкт, на який цей об’єкт може реагувати.
З вікном під час виконання віконного проєкту можуть відбуватися події:
  • Click (англ. click – клацання) – вибір будь-якої точки вікна;
  • DblClick (англ. double – подвійний) – подвійне клацання в будь-якій точці вікна;
  • Сlose (англ. close – закриття) – закривання вікна;
  • Сreate (англ. create – створення) – створення вікна;
  • КeyPress (англ. key press – натиснення клавіші) – натиснення будь-якої клавіші на клавіатурі;
  • МouseMove (англ. mouse move – переміщення миші) — переміщення вказівника в межах вікна виконання проєкту; та інші.
Графічна програма очікує від елементів інтерфейсу подійі виконує у відповідь на події методи — обробники подій, прикріплені до цих віджетів.
Обробник події — підпрограма, яка виконується в разі настання події, з якою він пов’язаний.
Підпрограма, яка пов'язана з певним об'єктом, називається методом цього об'єкта.
Вікно із подією й функцією-обробником події пов’язують викликом методу bind() (рис. 1):
root.bind(‘<подія>’, <ім'я обробника події>)
де '<подія>' — текстова константа, системна назва події.
 
63.PNG
Рис.1
 
Позначення подій у мові Python
1.PNG
Приклад:
Підпрограма з ім'ям click є обробником події Click (клацання лівою кнопкою миші). Команда пов'язування вікна з іменем root з цим обробником події має вигляд:
root.bind(‘<1>’, click)
Загальний вигляд обробника події такий:
def <ім'я_обробника_події> (event):
            <команди, які будуть виконуватися при настанні події>
(англ. event –подія).
Для обробника події  з іменем click рядок заголовка буде таким:
def click (event):
Змінення значень певних властивостей вікна
Обробник події може містити команди змінення значень певних властивостей вікна.
Значення властивостей вікна можна змінити:
  • командою присвоювання:
    <ім'я_вікна> ['<властивість>'] = '<значення>'
Наприклад, команда root[‘bg’] = ‘green’ змінить значення властивості колір фону та встановить зелений колір вікна з іменем root;
  • командою використання метода вікна:
<ім'я_вікна>.<ім'я_методу> ('<параметри>')
Команда root.title( '<текст>') установлює заголовок вікна.
Команда root.geometry('<рядок параметрів>') установлює розміри вікна (у пікселях). Як параметр методу передається рядок у форматі «ширина × висота». 
Приклад:
Під час виконання функції click (обробника події Click для  вікна)  зміняться текст заголовка, розміри і положення вікна, колір фону вікна.
 
65.PNG
Методи отримання поточних значень властивостей об'єкта
Для отримання поточних значень розмірів і положення вікна використовують методи:
  • winfo_width() – (англ. window information – інформація про вікно) поточна ширина вікна;
  • winfo_height() – поточна висота вікна;
  • winfo_x() – поточна відстань лівої межі вікна від лівого краю екрана;
  • winfo_y() – поточна відстань верхньої межі вікна від верхнього краю екрана.
Приклад:
Щоб дізнатися поточну відстань вікна з іменем root від верхньої межі екрана та збільшити її на 50, потрібно виконати команду:
t = root.winfo_y() + 50
Щоб установити нове значення, потрібно в рядок параметрів метода geometry() замість числа підставити значення змінної. Для цього слід:
  • перед рядком параметрів увести символ f;
  • у рядку параметрів на місці, де потрібно вставити значення змінної, увести символи {}, а між ними ім'я змінної:
    root.geometry(f‘300x200+500+{t}’)
Щоб використати в команді значення кількох змінних, потрібно на всіх відповідних місцях увести символи {} з іменами відповідних змінних.
Приклад:
Для того, щоб після настання події клацання лівої кнопки миші вікно опустилося на 50 пікселів униз, а його ширина збільшилася на 140 пікселів, можна виконати проєкт, наведений на рис.2.
 
66.PNG
Джерела:
Інформатика : підруч. для 7-го кл. закл. заг. серед. освіти / Йосиф Ривкінд [та ін.]. — Київ : Генеза, 2024.