середа, 15 квітня 2026 р.

лабораторна робота 17   Графічний інтерфейс у Python засобами tkinter

 Лабораторна робота 17   Графічний інтерфейс у Python засобами tkinter

Мета роботи:

  • навчитися створювати графічне вікно в Python
  • використовувати елементи інтерфейсу: Label, Entry, Button
  • реалізувати обробку подій (натискання кнопок)
  • виконувати арифметичні операції над введеними даними

Обладнання:

  • комп’ютер
  • середовище програмування Python (IDLE, PyCharm тощо)

завдання 1:

Розробити програму мовою Python із використанням модуля tkinter, яка реалізує просте обчислення - графічний калькулятор.

Програма повинна:

  1. Створити вікно з назвою «Обчислення двох чисел».
  2. Містити напис із підказкою для користувача (введення чисел).
  3. Містити два поля введення (Entry) для введення чисел.
  4. Містити чотири кнопки, розташовані в один ряд:
    • «Сума»
    • «Різниця»
    • «Добуток»
    • «Частка»
  5. При натисканні на відповідну кнопку:
    • зчитувати значення з полів введення
    • виконувати обчислення
    • виводити результат під кнопками
  6. Передбачити обробку помилок (наприклад, ділення на нуль).
До кожного рядка коду написати пояснення.

Приклад коду:
import tkinter as tk  # імпортуємо бібліотеку tkinter для створення GUI

# -------- функції обчислення --------

def add():  # функція додавання
    a = float(entry1.get())  # отримуємо перше число з поля введення
    b = float(entry2.get())  # отримуємо друге число
    result_label.config(text="Сума: " + str(a + b))  # виводимо результат

def sub():  # функція різниці
    a = float(entry1.get())  # беремо перше число
    b = float(entry2.get())  # беремо друге число
    result_label.config(text="Різниця: " + str(a - b))  # обчислення

def mul():  # функція множення
    a = float(entry1.get())  # перше число
    b = float(entry2.get())  # друге число
    result_label.config(text="Добуток: " + str(a * b))  # результат

def div():  # функція ділення
    a = float(entry1.get())  # перше число
    b = float(entry2.get())  # друге число
    if b != 0:  # перевірка на ділення на нуль
        result_label.config(text="Частка: " + str(a / b))  # результат
    else:
        result_label.config(text="Помилка: ділення на 0!")  # повідомлення

# -------- створення вікна --------

root = tk.Tk()  # створюємо головне вікно
root.title("обчислення двох чисел")  # встановлюємо заголовок
root.geometry("350x250")  # задаємо розмір вікна

# -------- напис --------

label = tk.Label(root, text="Введіть два числа")  # створюємо напис
label.pack(pady=5)  # розміщуємо його у вікні

# -------- поле введення 1 --------

entry1 = tk.Entry(root)  # створюємо перше поле введення
entry1.pack(pady=5)  # розміщуємо

# -------- поле введення 2 --------

entry2 = tk.Entry(root)  # створюємо друге поле введення
entry2.pack(pady=5)  # розміщуємо

# -------- контейнер для кнопок --------

frame_buttons = tk.Frame(root)  # створюємо контейнер (рамку) для кнопок
frame_buttons.pack(pady=10)  # розміщуємо його

# -------- кнопки --------

btn_add = tk.Button(frame_buttons, text="Сума", command=add)  # кнопка додавання
btn_add.grid(row=0, column=0, padx=5)  # розміщення в ряд

btn_sub = tk.Button(frame_buttons, text="Різниця", command=sub)  # кнопка різниці
btn_sub.grid(row=0, column=1, padx=5)

btn_mul = tk.Button(frame_buttons, text="Добуток", command=mul)  # множення
btn_mul.grid(row=0, column=2, padx=5)

btn_div = tk.Button(frame_buttons, text="Частка", command=div)  # ділення
btn_div.grid(row=0, column=3, padx=5)

# -------- результат --------

result_label = tk.Label(root, text="")  # напис для результату
result_label.pack(pady=10)  # розміщення

# -------- запуск --------

root.mainloop()  # запуск головного циклу програми