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


from tkinter import *

# --- Функции для кнопок ---

def insert_text():
    """Вставляет слово 'Ура!' в начало текста (позиция 1.0)"""
    text_field.insert(1.0, "Ура! ")

def get_text():
    """Берет весь текст из поля и вставляет его в метку снизу"""
    # get(1.0, END) берет текст с самого начала до самого конца
    content = text_field.get(1.0, END) 
    label_result.config(text=content)

def clear_text():
    """Полностью очищает текстовое поле"""
    text_field.delete(1.0, END)

# --- Создание окна ---
window = Tk()
window.title("Ура или не Ура") # Название окна

# 1. Создаем текстовое поле с прокруткой
# Размещаем его сверху (side=TOP) и разрешаем растягиваться
text_field = Text(window, width=35, height=8, wrap=WORD)
text_field.pack(side=TOP, fill=BOTH, expand=True, padx=5, pady=5) 
# padx и pady добавляют небольшие отступы от краев окна для красоты

# Создаем скроллбар
scroll = Scrollbar(window, command=text_field.yview)
scroll.pack(side=RIGHT, fill=Y) # Прижимаем вправо и растягиваем по вертикали

# Связываем скроллбар с полем
text_field.config(yscrollcommand=scroll.set)

# 2. Создаем фрейм (рамку) для кнопок, чтобы они стояли в ряд
frame_buttons = Frame(window)
frame_buttons.pack(side=TOP, fill=X, pady=5) # Размещаем под текстом

# 3. Создаем и размещаем кнопки внутри фрейма
# side=LEFT заставляет их выстраиваться слева направо
btn_insert = Button(frame_buttons, text="Вставить", command=insert_text)
btn_insert.pack(side=LEFT, expand=True, fill=X)

btn_click = Button(frame_buttons, text="Нажим", command=get_text)
btn_click.pack(side=LEFT, expand=True, fill=X)

btn_delete = Button(frame_buttons, text="Удалить", command=clear_text)
btn_delete.pack(side=LEFT, expand=True, fill=X)

# 4. Создаем метку (Label) для вывода текста снизу
# wraplength задает ширину, после которой текст переносится на новую строку
label_result = Label(window, text="Здесь появится текст...", bg="white", height=4, wraplength=250)
label_result.pack(side=TOP, fill=X, padx=5, pady=5)

# Запуск главного цикла программы
window.mainloop()