Загрузка данных


import tkinter as tk
from tkinter import messagebox


# Добавление контакта
def add_contact():
    name = entry_name.get()
    phone = entry_phone.get()

    if name == "" or phone == "":
        messagebox.showwarning("Ошибка", "Заполните имя и телефон")
        return

    listbox.insert(tk.END, f"{name} — {phone}")

    entry_name.delete(0, tk.END)
    entry_phone.delete(0, tk.END)


# Удаление выбранного контакта
def delete_contact():
    selected = listbox.curselection()

    if selected:
        listbox.delete(selected[0])
    else:
        messagebox.showwarning("Ошибка", "Выберите контакт")


# Очистка всех контактов
def clear_all():
    listbox.delete(0, tk.END)


# Главное окно
window = tk.Tk()
window.title("Записная книжка")
window.geometry("500x500")
window.resizable(False, False)


# Заголовок
tk.Label(
    window,
    text="Записная книжка",
    font=("Arial", 18, "bold")
).pack(pady=15)


# Имя
tk.Label(
    window,
    text="Имя контакта:"
).pack()

entry_name = tk.Entry(
    window,
    width=40
)
entry_name.pack(pady=5)


# Телефон
tk.Label(
    window,
    text="Телефон:"
).pack()

entry_phone = tk.Entry(
    window,
    width=40
)
entry_phone.pack(pady=5)


# Кнопка Добавить
tk.Button(
    window,
    text="Добавить",
    command=add_contact,
    width=20
).pack(pady=10)


# Listbox
tk.Label(
    window,
    text="Контакты:"
).pack()

listbox = tk.Listbox(
    window,
    width=50,
    height=10
)
listbox.pack(pady=5)


# Кнопка Удалить
tk.Button(
    window,
    text="Удалить",
    command=delete_contact,
    width=20
).pack(pady=5)


# Кнопка Очистить всё
tk.Button(
    window,
    text="Очистить всё",
    command=clear_all,
    width=20
).pack(pady=5)


# Запуск программы
window.mainloop()