Інформація про новину
  • Переглядів: 247
  • Дата: 26-09-2021, 19:19
26-09-2021, 19:19

15. Обробники подій, пов’язаних з елементами керування

Категорія: Інформатика





Попередня сторінка:  14. Поняття об’єкта в мові програмуван...
Наступна сторінка:   16. Опрацювання величин у програмах з е...

Зміст

 

1. Як пов’язані елементи керування та події?

2. Як у програмі описати елемент керування кнопка? 

3. Що таке обробник події? 

4. Як отримати вікно повідомлення?

 

ПРИГАДАЙТЕ:

  • які події можна описати командами групи "Керувати" в середовищі Скретч.

 

1. Як пов’язані елементи керування та подй?

Окрім напису, який є статичним об’єктом вікна графічної форми результату виконання програми мовою Python, можна використовувати об’єкти — елементи керування, які можуть «реагувати» на деякі події.

Елементи керування — це графічні об’єкти, розташовані на вікні програми для показу або введення даних, виконання дій або полегшення роботи: текстові поля, списки, перемикачі, кнопки, прапорці тощо.

Якщо властивості характеризують стан елемента керування, методи — дії, які він може виконати, то події — зовнішній вплив на елемент керування, на який цей елемент може реагувати.

Тому елемент керування умовно можна описати формулою:

Виділяють такі три основні типи подій:

• взаємодія з мишею;

• натискання клавіш на клавіатурі;

• зміна стану об’єктів, створених у результаті виконання програми.

Приклади подій взаємодії з мишею:

• <Button-3> — клацання правою кнопкою миші;

• <Double-Button-l> —подвійне клацання лівою кнопкою миші;

• <Motion> — рух миші.

При описі події натискання клавіш клавіатури літерні клавіші можна записувати без кутових дужок (наприклад, ’L’). Для неалфа-вітних клавіш існують спеціальні зарезервовані слова:

• <Return> — натискання клавіші Enter,

• <Space> — пропуск;

• <Control> — натискання клавіші Ctrl;

• <Shif t> — натискання клавіші Shift;

• <z>—натискання клавіші z.

В останньому випадку замість 2 можна використовувати будь-який символ клавіатури, що містить літеру. Назву події натисканні комбінації клавіш вказують через дефіс. Наприклад: <Control-a> або <Control-Shift>.

2. Як у програмі описати елемент керування кнопка?

Для додавання елемента керування кнопка до вікна програми з графічними елементами, яке створене мовою Python з використанням модуля tkinter, використовують команду Button () .

Якщо у програмі використати код, як на малюнку 15.1,

то на головному вікні буде розташована кнопка, яка матиме всі властивості вікна (мал. 15.2):

Так само, як і напис, об’єкт кнопка може мати свої властивості, які описують службовими словами:

• text — напис на кнопці;

• width, height — ширина й довжина (у знакомісцях);

• bg — колір (скорочено від background);

• f g — колір напису (скорочено від foreground);

• font — шрифт і його розмір;

• padx — відступ від межі до об’єкта по горизонталі;

• pady — відступ від межі до об’єкта по вертикалі.

Змінити властивість об’єкта під час виконання програми можна за допомогою методу configure.

Якщо програму, код якої подано на малюнку 15.1, доповнити командами додавання кнопки 2 (мал. 15.3), то отримаємо вікно з двома кнопками, які за замовчуванням розміщуються по центру верхнього краю (мал. 15.4).

Розміщенням кнопок, як і іншими елементами керування на вікні, управляють за допомогою властивостей методу pack ():

• expand: якщо дорівнює True, то елемент управління заповнює все вікно;

• fill: визначає, чи буде елемент управління розтягуватися, щоб заповнити вільне поле. Цей параметр може набувати значень: NONE (за замовчуванням, елемент не розтягується), X (елемент розтягується тільки за горизонталлю), Y (елемент розтягується тільки за вертикаллю) и BOTH (елемент розтягується і за горизонталлю, і за вертикаллю);

• side: вирівнює елемент управління щодо сторін вікна. Може набувати значень: ТОР (за замовчуванням, вирівнюється зверху, по центру), bottom (вирівнюється по центру, по нижній основі), LEFT (вирівнюється за лівою межею), RIGHT (вирівнюється за правою межею).

Ці властивості заздалегідь потрібно імпортувати з модуля

Вправа 1. Сторони горизонту.

Завдання. Складіть програму, яка за допомогою кнопок ілюструє

сторони горизонту.

1. Відкрийте середовище програмування. Створіть файл Сторони_ горизонту_Прізвищє в папці Навчальні проекти вашої структури папок.

2. імпортуйте потрібні модулі та їхні складові.

3. Доповніть текст програми (мал. 15.1) так, щоб додати кнопку з написом Південь і розмістити її по центру внизу.

4. Додайте інші кнопки. Перевірте, чи отримали ви потрібний результат. За потреби виправте помилки.

3. Що таке обробник подій?

Щоб описати дії, які мають виконуватися за настання деякої події для об’єкта, необхідно написати програмний код — обробник події.

Обробник події — це частина програми, що виконує певні дії у відповідь на подію (спричинену, наприклад, дією користувача).

Описують подію за допомогою функції користувача. Наприклад, подія «натиснуто кнопку» button_click () викликатиме команду print, за якою у вікні середовища отримаємо результат — Привіт (мал. 15.5).

Зверніть увагу, що мовою програмування Python під час запису наступної команди в новому рядку важливою є відстань зліва, що формується за допомогою відповідної кількості пропусків: команди, які мають однаковий рівень за вертикаллю, незалежні одна від одної і виконуються послідовно, а для команд, що розпочинаються правіше — кожний наступний рівень вказує, що команди цього рівня виконуються в межах команди вищого рівня.

Для опрацювання натиснення на кнопку в конструкторі кнопки потрібно встановити параметр command, надавши йому посилання на функцію, яка діятиме при натисненні. Повний текст програми подано на малюнку 15.6.

Зв’язувати об’єкт керування, подію та дію можна й за допомогою методу bind. У функцій-обробників, які викликають через bind, а не через властивість command, має обов’язково бути параметр event, через який передається подія.

Тоді виклик цієї функції задається конструкцією:

Вправа 2. Перетворення кольору.

Завдання. Створіть програму, у якій вікно змінюватиме колір фону на зелений після клацання лівою кнопкою миші й на червоний — після клацання правою.

1. Запустіть середовище програмування. Створіть новий файл Пере-творення_Прізвище у своїй структурі папок.

2. Імпортуйте потрібні модулі та їхні складові, наприклад, import tkinter

3. Створіть ВІКНО.

4. Створіть функцію з іменем left_mouse, на місці аргументу вкажіть event, що означає, що функція пов’язана з подією.

5. Створіть функцію з іменем right_mouse

6. Для вікна створіть події і прив’яжіть їх до створених функцій.

7. Запустіть програму на виконання. Переконайтесь, що вона виконує поставлене завдання (мал. 15.7).

Вправа 3. Годинник.

Завдання. Дослідіть, що отримують у результаті виконання програми (мал. 15.8). Як змінюється вікно програми після натиснення кнопки? Яке призначення модуля time?

4. Як отримати вікно повідомлення?

Окрім головного вікна програми, за допомогою додаткових модулів tkinter можна отримати вікна повідомлень, вибору «так-ні», відкривання файлів тощо. Одним з модулів є модуль messagebox.

Щоб викликати цей модуль, на початку програми записують команду: import tkinter.messagebox

Тоді вікно повідомлення із заголовком та текстом формується за допомогою команди:

Вправа 4. Вітання.

Завдання. Створіть вікно з написом Hello World! і кнопкою Привіт. Після натискування кнопки на екрані має з’явитись вікно повідомлення із заголовком Відповідь і текстом Hello Again] (мал. 15.9).

1. Відкрийте середовище програмування. Створіть файл Вітання_ Прізвище.

2. Змінітьтекст програми так, щоб після натискування кнопки на екран виводилось вікно повідомлення. Використайте фрагмент коду:

3. Запустіть програму на виконання. Переконайтеся, чи отримали ви бажаний результат. Чи потрібно вносити інші зміни у програму?

Вправа 5. Інформаційні вікна.

Завдання. Дослідіть, як зміниться вигляд вікна повідомлення у програмі Вітання, якщо замість команди методу showinfo використати метод showerror або showwarning.

1. Обговоріть, як описують події' в навчальному середовищі складання та виконання алгоритмів Скретч і мовою програмування Python. Чим відрізняються події?

2. Обговоріть, як у програмах із графічним інтерфейсом використовують елементи управління кнопки. Які події пов’язані з ними? Хтось називає приклад, а хтось — подію.

3. Пограйте у гру «Властивість-призначення». Хтось називає властивість елемента керування кнопка, інший чи інша — призначення. Якщо відповідь правильна, то поміняйтесь ролями. Виграє той чи та, чиє запитання буде останнім.

4. Придумайте ідею, сплануйте та створіть власний проект із використанням кнопок, вікон повідомлення, модуля часу. Запропонуйте його для виконання іншим учням. Порівняйте отримані результати.

5. Складіть програму, після запуску якої на екрані з’являється вікно, де послідовно розміщено 4 різнокольорові кнопки з назвами кольорів та різними розмірами кнопок за шириною.

6. Складіть програму, після запуску якої на екрані буде розміщено напис «Автори Гімну України» та дві кнопки. Натискування першої «Слова» виводить відповідь у середовище програмування, а другої «Музика» — в інформаційне вікно.

7. Складіть опитувальник з вашого улюбленого предмета. У вікні опитувальника під запитанням розмістіть кнопки «так» і «ні». Якщо користувач натисне правильну кнопку, то у відповідь має отримати вікно з повідомленням, яке пояснює відповідь на запитання. А якщо неправильну — тоді вікно із цим поясненням буде мати вигляд вікна showerror.

 

Це матеріал з підручника Інформатика 8 клас Морзе, Барна (2021)

 



Попередня сторінка:  14. Поняття об’єкта в мові програмуван...
Наступна сторінка:   16. Опрацювання величин у програмах з е...



^