Урок 51. 8 клас.


Урок №51. Події та обробники подій. Вікно повідомлення.

Об’єкт – це елемент , на який спрямована певна діяльність.
Подія – це зміна властивості об’єкта, взаємодія між ними, утворення нового або знищення існуючого. Кожна подія містить оцінку часу, що вказує, коли вона відбувається і місця, де вона відбувається.
Метод – дія, яку об’єкт може виконати.
В роботі з вікнами на мові Python існують такі події:
·     Button-1  – клік лівою клавішею миші по будь-якій області об’єкта;
·     Button-3  – клік правою клавішею миші по будь-якій області об’єкта;
·     KeyPress – натискання будь-якої клавіші на клавіатурі;
·     Motionпереміщення курсора миші по області об’єкта;
·     Destroy – закриття вибраного вікна.
Це не весь перелік, але цього нам буде достатньо. Весь перелік ви можете ознайомитись тут
Обробник подійце фрагмент програми, який буде виконуватися відразу після настання цієї події, яка може відбутися з об’єктом.
У Python обробником подій є функція, що являє собою набір команд. Цю функцію потрібно створити, щоб до неї звернутися при виконанні певної події. Цю функцію потрібно, після підключення модулів, щоб не вийшло непорозуміння з інтерпретатором.
Структура створення функції:
def назва_функції (аргумент):
           команда
           ……..
           ……

Назву функції користувач дає самостійно, а до команд відносяться створення об’єктів, елементів керування, або змінення властивостей певних об’єктів.
Приклад 1.  Створити функцію, яка буде змінювати розмір вікна w1 на 500х500 пікселів та встановлення синього кольору фону. Назва функції change, аргумент цієї функції event :


Створимо подію та присвоїмо їй дану функцію. Структура даної події:
назва_об’єкта_до_якого_буде_застосовуватися_подія.bind(‘<подія>’, назва_функуії)
Позначення подій, породжених діями з мишею
 <Button-1> — натискання лівої кнопки;
<Button-2> — натискання середньої кнопки;
<Button-3> — натискання правої кнопки;
<Double-Button-1> — подвійне клацання лівою кнопкою;
<Motion> — рух миші;
<MouseWheel> – прокрутка колесом миші;
<KeyPress>, <KeyRelease> – натиснення і відпуск клавіші на клавіатурі
<ButtonPress>, <ButtonRelease>, <Motion> - натискання, відпускання кнопки миші, рух мишею;
<Configure> - зміна положення або розміру вікна.


Приклад 2. Створити подію натисканням лівої клавіші миші по області вікна w1, при якій буде виконуватися функція change.
Об’єднаємо ці конструкції в одну програму:

Ми можемо змінювати властивості об’єктів при виконанні певної події, можемо створювати вікна повідомлення, тобто командою функції буде створено вікно з повідомленням для користувача. Вікно повідомлення складається тільки із інформації та кнопки «Ок». Таке вікно зручне тим, що воно допомагає донести інформацію користувачеві та не займає місце на головному вікні.
Функція створення вікна повідомлення messagebox.showinfo() має вигляд:
messagebox.showinfo(‘заголовок_вікна’, ‘зміст_повідомлення’)
Приклад 3. До прикладу 2 у події додати команду створення вікна повідомлення з заголовком «Повідомлення» та текстом «Я програмую на Python». 

Зверніть увагу! Бажано підключати клас messagebox окремо, для цього на початку повинен бути присутній рядок коду: