Створення інтерфейсу користувача засобами бібліотеки asygui
Нова українська школа
Урок 48
Інформатика 7
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Створення інтерфейсу користувача
Ви вже маєте досвід написання консольних програм. У сучасних програмах зазвичай використовується графічний інтерфейс, який є більш наочним і зручним для користувача, ніж консоль.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Створення інтерфейсу користувача
Користувачі мають довільний доступ (за допомогою клавіатури або миші) до всіх видимих екранних об’єктів — елементів інтерфейсу.
Графічний інтерфейс — це вигляд вікна програми, в якому для взаємодії людини й комп’ютера застосовуються графічні компоненти (вікна, меню, кнопки тощо).
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Створення інтерфейсу користувача
Швидко створити графічний інтерфейс із використанням вікон виведення повідомлень, кнопкових меню, діалогових вікон та зображень допоможе бібліотека EasyGUI.
Її слід встановити на комп’ютер із офіційного сайту:
easygui.sourceforge.net
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Перші кроки з EasyGUI
Перед викликом функцій із бібліотеки EasyGUI на початку програмного коду слід імпортувати модуль easygui:
from easygui import*
Вікно повідомлень
Функція msgbox() модуля easygui створює діалогове вікно з повідомленням і єдиною кнопкою.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Перші кроки з EasyGUI
Формат функції msgbox():
msgbox(message, <title, button, image>)
текст повідомлення;
message
заголовок діалогового вікна,
title
напис на кнопці,
button
ім’я графічного файлу (у форматі .gif) для додавання зображення.
image
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Перші кроки з EasyGUI
Створимо діалогове вікно для привітання:
Програмний код
from easygui import*
message = 'Вітаю!'
msgbox(message, 'Привітання', 'Привіт!', 'python.gif')
Обов’язковим є тільки
параметр message.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Перші кроки з EasyGUI
Якщо певний параметр потрібно пропустити,
то значення решти параметрів задавайте за допомогою присвоєнь: параметр = значення.
Створимо вітальне діалогове вікно з малюнком і кнопкою ОК, не вказуючи заголовка вікна.
from easygui import*
msgbox('Вітаю!', image ='python.gif')
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Опрацювання дій користувача
Дослідимо, як віджети з бібліотеки EasyGUI реагують на дії користувача. Введемо у вікні IDLE команди:
Отримаємо реакцію: 'OK'.
Рядком 'ОК' інтерпретатор Python повідомляє, що користувач натиснув кнопку ОК.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Опрацювання дій користувача
Функції модуля easygui завжди підтримують зворотний зв’язок, інформуючи про дії користувача — яку кнопку натиснуто, які дані уведено тощо.
Інформацію про дії користувача можна зберегти в змінній для подальшого опрацювання.
Збережемо інформацію у змінній my_click:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Опрацювання дій користувача
Клацнемо кнопку ОК, щоб закрити діалогове вікно, й у вікні IDLE переглянемо значення змінної my_click:
Ми переконалися, що дії користувача — клацання кнопки ОК — зафіксовані у змінній my_click. Це дозволяє програмувати реакцію на дії користувача під час використання складніших функцій із бібліотеки EasyGUI.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Функція buttonbox() модуля easygui створює діалогове вікно з повідомленням і набором кнопок.
Формат функції:
buttonbox(message, title, choices)
текст повідомлення,
message
заголовок діалогового вікна,
title
список заголовків кнопок.
choices
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Створимо програму для вибору відповіді на загадку:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Запустивши програму, побачимо вікно з трьома кнопками
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Після натискання однієї з них — вікно з відповідним коментарем.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Проаналізуємо хід виконання програми. Замість уведення значення змінної puzzle за допомогою оператора input() програма пропонує клацнути кнопку.
Це клацання сприймається як введення даних. Текст заголовка кнопки (значення типу string) зберігається в змінній puzzle.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Вікно choicebox
Коли потрібно зробити вибір із двох-трьох варіантів, зручно використовувати функцію buttonbox().
Але якщо варіантів більше, вікно буде перевантажене кнопками, тому краще скористатись функцією.
Вікно, що створене цією функцією, містить список варіантів. Користувач/користувачка може вибрати один з них або клацнувши його двічі, або клацнувши його у списку і натиснувши ОК.
choicebox()
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Формат функції choicebox():
choicebox (message, title, choices)
текст повідомлення,
message
заголовок діалогового вікна,
title
список варіантів.
choices
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Виберемо персонажа для гри за допомогою діалогового вікна зі списком варіантів. Зображення персонажів зберігаються у файлах 1.gif, 2.gif, 3.gif, 4.gif. Присвоїмо змінній вибраний елемент списку:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Діалогове вікно з набором кнопок
Функція choicebox() виводить діалогове вікно зі списком.
Після натискання кнопки ОК змінна choice набуває значення, вибраного в списку, яке й виводиться функцією msgbox() разом із зображенням.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Введення даних
Розглянуті функції дозволяють робити вибір з обмеженої кількості запропонованих варіантів. А як надати можливість вводити власний варіант відповіді? Для цього в бібліотеці EasyGUI є функція enterbox, яка відкриває вікно введення:
змінна = enterbox(message, title, default)
текст підказки,
message
заголовок діалогового вікна,
title
варіант, що пропонується за замовчуванням.
default
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Введення даних
Створимо діалогове вікно без заголовка для введення відповіді; запропонуємо за замовчуванням варіант Ескімо.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Введення даних
При запуску програми побачимо, що в полі введення вже є варіант Ескімо.
Замість нього можна ввести іншу відповідь, але якщо нас все влаштовує, слід клацнути кнопку ОК.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Введення даних
Значення, отримане за допомогою функції enterbox, належить до рядкового типу. Якщо потрібно опрацьовувати числове значення, отриманий рядок слід перетворити на число за допомогою відомих вам функцій:
int()
float()
або
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Введення даних
Як бачимо, можливостей бібліотеки EasyGUI достатньо, щоб зробити, наприклад, програму для перевірки знань з предмету.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Ознайомтеся з цікавою інформацією
Мова Python використовується для розв’язування великої кількості як наукових, так і бізнес-завдань. У науковій сфері Python широко використовується математиками, фізиками, біологами завдяки простоті її вивчення та наявності додаткових потужних бібліотек.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Питання для самоперевірки
choice = buttonbox('Виберіть рівень', 'Гра', ['1', '2', '3'])?
choice = choicebox('Скільки гравців? ', 'Гра', ['1', '2', '3'])?
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Розгадайте ребус
«Ребуси українською» © rebus1.com
Інтерфейс
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Домашнє завдання
Проаналізувати
с. 227-233
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Працюємо за комп’ютером
Сторінка
232-233
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 38
Дякую за увагу!
Нова українська школа
Урок 48
Інформатика 7
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.