Обробники подій 8 клас

Про матеріал
Обробники подій в програмі PyCharm за підручником інформатика 8 клас (автор Бондаренко О.)
Перегляд файлу
§ 28 Тема уроку: Обробники подій27 січня 2023 р.Інформатика 8 клас. Розділ 5. Алгоритми та програми
27 січня 2023 р.Інформатика 8 клас. Розділ 5. Алгоритми та програми. Подія – це зовнішній вплив на об’єкт, на який цей об’єкт може реагувати певним чином. Подія. Подія. Основна відмінність програм із графічним інтерфейсом користувача — інтерактивність. Хід виконання таких програми залежить від втручання користувача, який постійно взаємодіє з програмою (натискає кнопки, вводить дані тощо, тобто створює події).§ 28
Події в роботі з вікнами27 січня 2023 р. Button-1 – клік лівою клавішею миші по будь-якій області об’єкта;Key. Press – натискання будь-якої клавіші на клавіатурі;Motion – переміщення курсора миші по області об’єкта;Destroy – закриття вибраного вікна. Розділ 5. Алгоритми та програми. З будь-якою подією, яка може відбуватися з формою, можна пов’язати фрагмент програми, який буде виконуватися одразу після настання цієї події. Такий фрагмент називають обробником події. У Python обробником подій є функція, що являє собою набір команд.§ 28
Створення функції27 січня 2023 р. Розділ 5. Алгоритми та програми. Функція — іменований блок коду. Кожна функція має назву, тіло і може мати перелік параметрів. У Python функції визначаються за допомогою зарезервованого слова def. Як ви вже знаєте, синтаксис опису функції такий:def <назва_функції>([перелік параметрів]) <тіло функції>Тіло функції являє собою послідовність операторів, які будуть виконані після викликання функції.§ 28
Створення функції27 січня 2023 р. Розділ 5. Алгоритми та програми. Щоб прикріпити до віджета обробник події Натискання на кнопку, необхідно під час створення цього об’єкта в переліку параметрів присвоїти параметру command посилання на функцію, яка виконуватиметься в разі натискання на кнопку(функція btn_click():§ 28
27 січня 2023 р. Розділ 5. Алгоритми та програми Створимо кнопку button1 із заголовком Натисни мене!, яка виводить повідомлення Клік! У цьому коді функція button_clicked викликається щоразу, коли користувач натискає кнопку :from tkinter import* def button_clicked(): print(
27 січня 2023 р. Розділ 5. Алгоритми та програми Створимо клас Smart. Button (нащадок класу Button)— кнопку, яка підраховує кількість натискань і виводить результат у заголовку форми, на якій вона розміщена. Як базовий використаємо знайомий вам клас Button: from tkinter import* class Smart. Button(Button): def __init__(self, text, width, height): super().__init__(text = text, width = width, height = height, command = self.btn_click) self. Clicks = 0 # Початкове значення лічильника натискань def btn_click(self): self. Clicks += 1 # Збільшення лічильника натискань self.master.title('Натиснуто '+str(self. Clicks))Створення функції§ 28
27 січня 2023 р. Розділ 5. Алгоритми та програми Як бачимо, клас Smart. Button має конструктор _ _init_ _, у першому рядку якого за допомогою спеціального об’єкта super() викликається конструктор базового класу (super()._ _init_ _). Це потрібно для того, щоб повністю налаштувати кнопку Button, яка буде основою для Smart. Button. Як обробник події їй передається метод self.btn_click. В останньому рядку методу-обробника btn_click кнопка через атрибут master звертається до форми, яка містить цю кнопку, щоб змінити її заголовок (title). Тепер можна скласти програму з використанням класу Smart. Button: root = Tk() Smart. Button(text =
Програмування реакції об’єктів на інші події27 січня 2023 р. Розділ 5. Алгоритми та програми Можна зробити так, щоб об’єкт змінював свої властивості у відповідь на натискання певної клавіші клавіатури або миші. Віджет із подією та функцією-обробником bind() Подія (event)Функція пов’язують викликом методу bind() <віджет>.bind(<подія>, <функція>),	де <подія> — рядок із системною назвою події; <функція> — назва функції-обробника. У такий спосіб один віджет можна пов’язати з кількома подіями. Який із віджетів має відреагувати на натискання клавіші, якщо у вікні їх декілька? Щоб це задати, для потрібного віджета слід викликати метод focus_set(). Дізнатися ж, який із віджетів має фокус, можна, викликавши для будь-якого з них метод focus_get().§ 28
27 січня 2023 р. Розділ 5. Алгоритми та програми Запрограмуємо віджети у вікні root так, щоб той, на якому щойно клацнули, при натисканні клавіші зі стрілкою → рухався вправо:def move_wid_R(event): # обробник натискання стрілки event.widget.place(x = event.widget.winfo_x()+5)def focus_widget(event): #обробник клацання лівою кнопкою миши event.widget.focus_set()root.bind(", focus_widget) root.bind('', move_wid_R) ... <Тут додаємо віджети> Тут в обробниках подій з об’єкта event за допомогою атрибута widget здійснюється доступ до віджета, для якого обробляється подія. Методи winfo_x() і winfo_y() цього об’єкта повертають його координати x і y відносно вікна. Програмування реакції об’єктів на інші події§ 28" title="27 січня 2023 р. Розділ 5. Алгоритми та програми Запрограмуємо віджети у вікні root так, щоб той, на якому щойно клацнули, при натисканні клавіші зі стрілкою → рухався вправо:def move_wid_R(event): # обробник натискання стрілки event.widget.place(x = event.widget.winfo_x()+5)def focus_widget(event): #обробник клацання лівою кнопкою миши event.widget.focus_set()root.bind("", focus_widget) root.bind('', move_wid_R) ... <Тут додаємо віджети> Тут в обробниках подій з об’єкта event за допомогою атрибута widget здійснюється доступ до віджета, для якого обробляється подія. Методи winfo_x() і winfo_y() цього об’єкта повертають його координати x і y відносно вікна. Програмування реакції об’єктів на інші події§ 28">
27 січня 2023 р. Розділ 5. Алгоритми та програми Ознайомимося з формами назв подій.	Один символ — натискання клавіші клавіатури: lab.bind('z', action)Функцію action буде викликано кожного разу, коли віджет lab у фокусі і натиснуто клавішу z.'<Return>' — натискання клавіші Enter.'<Key. Press-Up>', '<Key. Press-Down>', '<Key. Press-Left>', '<Key. Press-Right>' — натискання клавіш керування курсором. Програмування реакції об’єктів на інші події§ 28
27 січня 2023 р. Розділ 5. Алгоритми та програми Функція, яку буде викликано в разі настання події, повинна приймати один аргумент. Це об’єкт класу Event, що має, серед інших, атрибути, які стануть вам у нагоді при створенні програм — наприклад, щоб змусити об’єкти рухатися по вікну:x і y — координати вказівника миші на віджеті;char — набраний на клавіатурі символ;keysym_num — код набраного на клавіатурі символу. Програмування реакції об’єктів на інші події§ 28
27 січня 2023 р. Розділ 5. Алгоритми та програми Макс Левчин— американський підприємець українського походження, співзасновник Pay. Pal і автор низки стартапів. Він вважає, що вивчення програмування стане величезною ракетою-носієм для вашого майбутнього незалежно від професійних планів. А ви знаєте, що….§ 28
27 січня 2023 р.Інформатика 8 клас. Розділ 5. Алгоритми та програми. Домашнє завдання. Проаналізувати§ 28, ст. 177-181§ 28
Зміст слайдів
Номер слайду 1

§ 28 Тема уроку: Обробники подій27 січня 2023 р.Інформатика 8 клас. Розділ 5. Алгоритми та програми

Номер слайду 2

27 січня 2023 р.Інформатика 8 клас. Розділ 5. Алгоритми та програми. Подія – це зовнішній вплив на об’єкт, на який цей об’єкт може реагувати певним чином. Подія. Подія. Основна відмінність програм із графічним інтерфейсом користувача — інтерактивність. Хід виконання таких програми залежить від втручання користувача, який постійно взаємодіє з програмою (натискає кнопки, вводить дані тощо, тобто створює події).§ 28

Номер слайду 3

Події в роботі з вікнами27 січня 2023 р. Button-1 – клік лівою клавішею миші по будь-якій області об’єкта;Key. Press – натискання будь-якої клавіші на клавіатурі;Motion – переміщення курсора миші по області об’єкта;Destroy – закриття вибраного вікна. Розділ 5. Алгоритми та програми. З будь-якою подією, яка може відбуватися з формою, можна пов’язати фрагмент програми, який буде виконуватися одразу після настання цієї події. Такий фрагмент називають обробником події. У Python обробником подій є функція, що являє собою набір команд.§ 28

Номер слайду 4

Створення функції27 січня 2023 р. Розділ 5. Алгоритми та програми. Функція — іменований блок коду. Кожна функція має назву, тіло і може мати перелік параметрів. У Python функції визначаються за допомогою зарезервованого слова def. Як ви вже знаєте, синтаксис опису функції такий:def <назва_функції>([перелік параметрів]) <тіло функції>Тіло функції являє собою послідовність операторів, які будуть виконані після викликання функції.§ 28

Номер слайду 5

Створення функції27 січня 2023 р. Розділ 5. Алгоритми та програми. Щоб прикріпити до віджета обробник події Натискання на кнопку, необхідно під час створення цього об’єкта в переліку параметрів присвоїти параметру command посилання на функцію, яка виконуватиметься в разі натискання на кнопку(функція btn_click():§ 28

Номер слайду 6

27 січня 2023 р. Розділ 5. Алгоритми та програми Створимо кнопку button1 із заголовком Натисни мене!, яка виводить повідомлення Клік! У цьому коді функція button_clicked викликається щоразу, коли користувач натискає кнопку :from tkinter import* def button_clicked(): print("Клік!")root = Tk()button1 = Button(root, bg = 'red', text = 'Натисни мене!', command = button_clicked)button1.pack() root.mainloop()Як ви знаєте, обробником події може бути один із методів класу. Створення функції§ 28

Номер слайду 7

27 січня 2023 р. Розділ 5. Алгоритми та програми Створимо клас Smart. Button (нащадок класу Button)— кнопку, яка підраховує кількість натискань і виводить результат у заголовку форми, на якій вона розміщена. Як базовий використаємо знайомий вам клас Button: from tkinter import* class Smart. Button(Button): def __init__(self, text, width, height): super().__init__(text = text, width = width, height = height, command = self.btn_click) self. Clicks = 0 # Початкове значення лічильника натискань def btn_click(self): self. Clicks += 1 # Збільшення лічильника натискань self.master.title('Натиснуто '+str(self. Clicks))Створення функції§ 28

Номер слайду 8

27 січня 2023 р. Розділ 5. Алгоритми та програми Як бачимо, клас Smart. Button має конструктор _ _init_ _, у першому рядку якого за допомогою спеціального об’єкта super() викликається конструктор базового класу (super()._ _init_ _). Це потрібно для того, щоб повністю налаштувати кнопку Button, яка буде основою для Smart. Button. Як обробник події їй передається метод self.btn_click. В останньому рядку методу-обробника btn_click кнопка через атрибут master звертається до форми, яка містить цю кнопку, щоб змінити її заголовок (title). Тепер можна скласти програму з використанням класу Smart. Button: root = Tk() Smart. Button(text = "Натискай!", width = 25, height = 3).pack() root.mainloop()Створення функції§ 28

Номер слайду 9

Програмування реакції об’єктів на інші події27 січня 2023 р. Розділ 5. Алгоритми та програми Можна зробити так, щоб об’єкт змінював свої властивості у відповідь на натискання певної клавіші клавіатури або миші. Віджет із подією та функцією-обробником bind() Подія (event)Функція пов’язують викликом методу bind() <віджет>.bind(<подія>, <функція>), де <подія> — рядок із системною назвою події; <функція> — назва функції-обробника. У такий спосіб один віджет можна пов’язати з кількома подіями. Який із віджетів має відреагувати на натискання клавіші, якщо у вікні їх декілька? Щоб це задати, для потрібного віджета слід викликати метод focus_set(). Дізнатися ж, який із віджетів має фокус, можна, викликавши для будь-якого з них метод focus_get().§ 28

Номер слайду 10

27 січня 2023 р. Розділ 5. Алгоритми та програми Запрограмуємо віджети у вікні root так, щоб той, на якому щойно клацнули, при натисканні клавіші зі стрілкою → рухався вправо:def move_wid_R(event): # обробник натискання стрілки event.widget.place(x = event.widget.winfo_x()+5)def focus_widget(event): #обробник клацання лівою кнопкою миши event.widget.focus_set()root.bind("", focus_widget) root.bind('', move_wid_R) ... <Тут додаємо віджети> Тут в обробниках подій з об’єкта event за допомогою атрибута widget здійснюється доступ до віджета, для якого обробляється подія. Методи winfo_x() і winfo_y() цього об’єкта повертають його координати x і y відносно вікна. Програмування реакції об’єктів на інші події§ 28

Номер слайду 11

27 січня 2023 р. Розділ 5. Алгоритми та програми Ознайомимося з формами назв подій. Один символ — натискання клавіші клавіатури: lab.bind('z', action)Функцію action буде викликано кожного разу, коли віджет lab у фокусі і натиснуто клавішу z.'' — натискання клавіші Enter.'', '', '', '' — натискання клавіш керування курсором. Програмування реакції об’єктів на інші події§ 28

Номер слайду 12

27 січня 2023 р. Розділ 5. Алгоритми та програми Функція, яку буде викликано в разі настання події, повинна приймати один аргумент. Це об’єкт класу Event, що має, серед інших, атрибути, які стануть вам у нагоді при створенні програм — наприклад, щоб змусити об’єкти рухатися по вікну:x і y — координати вказівника миші на віджеті;char — набраний на клавіатурі символ;keysym_num — код набраного на клавіатурі символу. Програмування реакції об’єктів на інші події§ 28

Номер слайду 13

27 січня 2023 р. Розділ 5. Алгоритми та програми Макс Левчин— американський підприємець українського походження, співзасновник Pay. Pal і автор низки стартапів. Він вважає, що вивчення програмування стане величезною ракетою-носієм для вашого майбутнього незалежно від професійних планів. А ви знаєте, що….§ 28

Номер слайду 14

27 січня 2023 р.Інформатика 8 клас. Розділ 5. Алгоритми та програми. Домашнє завдання. Проаналізувати§ 28, ст. 177-181§ 28

pptx
Пов’язані теми
Інформатика, Презентації
Додано
27 січня 2023
Переглядів
1380
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку