1 of 31

Створення інтерфейсу користувача засобами бібліотеки asygui

Нова українська школа

Урок 48

Інформатика 7

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

2 of 31

Створення інтерфейсу користувача

Ви вже маєте досвід написання консольних програм. У сучасних програмах зазвичай використовується графічний інтерфейс, який є більш наочним і зручним для користувача, ніж консоль.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

3 of 31

Створення інтерфейсу користувача

Користувачі мають довільний доступ (за допомогою клавіатури або миші) до всіх видимих екранних об’єктів — елементів інтерфейсу.

Графічний інтерфейс — це вигляд вікна програми, в якому для взаємодії людини й комп’ютера застосовуються графічні компоненти (вікна, меню, кнопки тощо).

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

4 of 31

Створення інтерфейсу користувача

Швидко створити графічний інтерфейс із використанням вікон виведення повідомлень, кнопкових меню, діалогових вікон та зображень допоможе бібліотека EasyGUI.

Її слід встановити на комп’ютер із офіційного сайту:

easygui.sourceforge.net

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

5 of 31

Перші кроки з EasyGUI

Перед викликом функцій із бібліотеки EasyGUI на початку програмного коду слід імпортувати модуль easygui:

from easygui import*

Вікно повідомлень

Функція msgbox() модуля easygui створює діалогове вікно з повідомленням і єдиною кнопкою.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

6 of 31

Перші кроки з EasyGUI

Формат функції msgbox():

msgbox(message, <title, button, image>)

текст повідомлення;

message

заголовок діалогового вікна,

title

напис на кнопці,

button

ім’я графічного файлу (у форматі .gif) для додавання зображення.

image

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

7 of 31

Перші кроки з EasyGUI

Створимо діалогове вікно для привітання:

Програмний код

from easygui import*

message = 'Вітаю!'

msgbox(message, 'Привітання', 'Привіт!', 'python.gif')

Обов’язковим є тільки

параметр message.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

8 of 31

Перші кроки з EasyGUI

Якщо певний параметр потрібно пропустити,

то значення решти параметрів задавайте за допомогою присвоєнь: параметр = значення.

Створимо вітальне діалогове вікно з малюнком і кнопкою ОК, не вказуючи заголовка вікна.

from easygui import*

msgbox('Вітаю!', image ='python.gif')

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

9 of 31

Опрацювання дій користувача

Дослідимо, як віджети з бібліотеки EasyGUI реагують на дії користувача. Введемо у вікні IDLE команди:

Отримаємо реакцію: 'OK'.

Рядком 'ОК' інтерпретатор Python повідомляє, що користувач натиснув кнопку ОК.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

10 of 31

Опрацювання дій користувача

Функції модуля easygui завжди підтримують зворотний зв’язок, інформуючи про дії користувача — яку кнопку натиснуто, які дані уведено тощо.

Інформацію про дії користувача можна зберегти в змінній для подальшого опрацювання.

Збережемо інформацію у змінній my_click:

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

11 of 31

Опрацювання дій користувача

Клацнемо кнопку ОК, щоб закрити діалогове вікно, й у вікні IDLE переглянемо значення змінної my_click:

Ми переконалися, що дії користувача — клацання кнопки ОК — зафіксовані у змінній my_click. Це дозволяє програмувати реакцію на дії користувача під час використання складніших функцій із бібліотеки EasyGUI.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

12 of 31

Діалогове вікно з набором кнопок

Функція buttonbox() модуля easygui створює діалогове вікно з повідомленням і набором кнопок.

Формат функції:

buttonbox(message, title, choices)

текст повідомлення,

message

заголовок діалогового вікна,

title

список заголовків кнопок.

choices

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

13 of 31

Діалогове вікно з набором кнопок

Створимо програму для вибору відповіді на загадку:

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

14 of 31

Діалогове вікно з набором кнопок

Запустивши програму, побачимо вікно з трьома кнопками

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

15 of 31

Діалогове вікно з набором кнопок

Після натискання однієї з них — вікно з відповідним коментарем.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

16 of 31

Діалогове вікно з набором кнопок

Проаналізуємо хід виконання програми. Замість уведення значення змінної puzzle за допомогою оператора input() програма пропонує клацнути кнопку.

Це клацання сприймається як введення даних. Текст заголовка кнопки (значення типу string) зберігається в змінній puzzle.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

17 of 31

Вікно choicebox

Коли потрібно зробити вибір із двох-трьох варіантів, зручно використовувати функцію buttonbox().

Але якщо варіантів більше, вікно буде перевантажене кнопками, тому краще скористатись функцією.

Вікно, що створене цією функцією, містить список варіантів. Користувач/користувачка може вибрати один з них або клацнувши його двічі, або клацнувши його у списку і натиснувши ОК.

choicebox()

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

18 of 31

Діалогове вікно з набором кнопок

Формат функції choicebox():

choicebox (message, title, choices)

текст повідомлення,

message

заголовок діалогового вікна,

title

список варіантів.

choices

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

19 of 31

Діалогове вікно з набором кнопок

Виберемо персонажа для гри за допомогою діалогового вікна зі списком варіантів. Зображення персонажів зберігаються у файлах 1.gif, 2.gif, 3.gif, 4.gif. Присвоїмо змінній вибраний елемент списку:

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

20 of 31

Діалогове вікно з набором кнопок

Функція choicebox() виводить діалогове вікно зі списком.

Після натискання кнопки ОК змінна choice набуває значення, вибраного в списку, яке й виводиться функцією msgbox() разом із зображенням.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

21 of 31

Введення даних

Розглянуті функції дозволяють робити вибір з обмеженої кількості запропонованих варіантів. А як надати можливість вводити власний варіант відповіді? Для цього в бібліотеці EasyGUI є функція enterbox, яка відкриває вікно введення:

змінна = enterbox(message, title, default)

текст підказки,

message

заголовок діалогового вікна,

title

варіант, що пропонується за замовчуванням.

default

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

22 of 31

Введення даних

Створимо діалогове вікно без заголовка для введення відповіді; запропонуємо за замовчуванням варіант Ескімо.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

23 of 31

Введення даних

При запуску програми побачимо, що в полі введення вже є варіант Ескімо.

Замість нього можна ввести іншу відповідь, але якщо нас все влаштовує, слід клацнути кнопку ОК.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

24 of 31

Введення даних

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

int()

float()

або

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

25 of 31

Введення даних

Як бачимо, можливостей бібліотеки EasyGUI достатньо, щоб зробити, наприклад, програму для перевірки знань з предмету.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

26 of 31

Ознайомтеся з цікавою інформацією

Мова Python використовується для розв’язування великої кількості як наукових, так і бізнес-завдань. У науковій сфері Python широко використовується математиками, фізиками, біологами завдяки простоті її вивчення та наявності додаткових потужних бібліотек.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

27 of 31

Питання для самоперевірки

  1. Як з модуля easygui викликати вікно з повідомленням і єдиною кнопкою?
  1. Як виглядає діалогове вікно, створене з такими параметрами:

choice = buttonbox('Виберіть рівень', 'Гра', ['1', '2', '3'])?

  1. Як виглядає діалогове вікно, створене з такими параметрами:

choice = choicebox('Скільки гравців? ', 'Гра', ['1', '2', '3'])?

  1. Як засобами модуля easygui ввести рядкові дані?

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

28 of 31

Розгадайте ребус

«Ребуси українською» © rebus1.com

Інтерфейс

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

29 of 31

Домашнє завдання

Проаналізувати

с. 227-233

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

30 of 31

Працюємо за комп’ютером

Сторінка

232-233

© Вивчаємо інформатику teach-inf.com.ua

Розділ 5

§ 38

31 of 31

Дякую за увагу!

Нова українська школа

Урок 48

Інформатика 7

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.