Створення програм із графічним інтерфейсом — це той самий момент, коли програмування перетворюється на розробку справжніх застосунків. Замість чорного вікна консолі ми навчимося створювати вікна, кнопки та текстові поля, якими зручно користуватися за допомогою мишки.
Для цієї роботи ми використаємо стандартну бібліотеку Tkinter.
Крок 0. Перевірка готовності: чи встановлений Python?
Перш ніж писати код, потрібно переконатися, що ваш комп’ютер розуміє мову Python.
Як перевірити інсталяцію:
- Відкрийте Термінал (на Mac) або Командний рядок (на Windows).
- Введіть команду:
python --versionабоpython3 --version - Якщо ви побачили відповідь на кшталт
Python 3.12.x, все добре.
Важливо для Windows: Якщо команда не працює, можливо, Python не додано до системних шляхів (PATH). При перевстановленні обов’язково поставте галочку “Add Python to PATH”.
Що таке графічний інтерфейс (GUI)?
GUI (Graphical User Interface) — це спосіб взаємодії користувача з програмою через візуальні елементи.
У бібліотеці Tkinter ми працюємо з трьома основними елементами:
- Вікно (Root): головна “коробка”, в якій лежать всі інші деталі.
- Віджети (Widgets): кнопки (
Button), написи (Label), поля введення (Entry). - Події (Events): дії користувача (наприклад, клік на кнопку), на які програма має зреагувати.
Завдання: Програма «Конвертер валют»
Ми створимо програму, яка допомагає швидко перерахувати суму з гривень у долари за актуальним курсом.
Повний код програми
Python
import tkinter as tk
from tkinter import messagebox
# Функція, яка виконує обчислення
def calculate_usd():
try:
# Отримуємо дані з текстового поля
uah_amount = float(entry_uah.get())
rate = 40.5 # Умовний курс долара
usd_result = uah_amount / rate
# Виводимо результат у спливаюче вікно
messagebox.showinfo("Результат", f"Ви отримаєте: {usd_result:.2f} USD")
except ValueError:
# Обробка помилки, якщо введено не число
messagebox.showerror("Помилка", "Будь ласка, введіть числове значення")
# 1. Налаштування головного вікна
root = tk.Tk()
root.title("Мій Конвертер v1.0")
root.geometry("300x250")
# 2. Створення елементів (віджетів)
label_hello = tk.Label(root, text="Конвертер UAH -> USD", font=("Arial", 12, "bold"))
label_hello.pack(pady=10)
label_instruction = tk.Label(root, text="Введіть суму в гривнях:")
label_instruction.pack()
entry_uah = tk.Entry(root, font=("Arial", 12))
entry_uah.pack(pady=10)
# Кнопка, яка викликає функцію calculate_usd
btn_convert = tk.Button(root, text="Порахувати", command=calculate_usd, bg="#4CAF50", fg="white", padx=10)
btn_convert.pack(pady=20)
# 3. Запуск вікна
root.mainloop()
Розбір ключових команд
Щоб ваша практична робота була виконана на високий бал, важливо розуміти ці методи:
root.mainloop()— це команда, яка каже програмі: «Не закривайся, чекай на дії користувача». Без неї вікно просто зблимне і зникне.entry_uah.get()— так ми «витягуємо» те, що учень надрукував у білому полі.command=calculate_usd— ми прив’язуємо кнопку до конкретної дії (функції). Зверніть увагу: дужки()писати тут не треба.pack(pady=10)— метод, який розміщує елемент у вікні. Параметрpadyдодає порожнє місце (відступи) зверху та знизу, щоб інтерфейс не був “стиснутим”.
Поради для покращення програми (Level Up)
- Захист від помилок: Використання
try...except— це ознака професійного коду. Якщо користувач введе текст замість цифр, програма не “вилетить”, а ввічливо видасть помилку. - Дизайн: Ви можете змінити колір фону кнопки (
bg) або колір тексту (fg), використовуючи англійські назви кольорів або HEX-коди (наприклад,#ffffff). - Автоматизація: Спробуйте змінити код так, щоб результат з’являвся не у новому вікні, а змінював текст наявного
Label.
Чек-лист для перевірки роботи
- [ ] Програма запускається без помилок у консолі.
- [ ] Встановлено заголовок вікна (
title). - [ ] При натисканні на кнопку з’являється результат обчислень.
- [ ] Поле введення очищується або обробляє некоректні дані.
- [ ] Код містить коментарі до основних блоків.