-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfirst programm.py
More file actions
97 lines (76 loc) · 6.46 KB
/
Copy pathfirst programm.py
File metadata and controls
97 lines (76 loc) · 6.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import tkinter as tk
# ---------------------------------
# 1. Налаштування головного вікна
# ---------------------------------
# Ініціалізуємо головне вікно
root = tk.Tk() # Створюємо головне вікно програми
root.title("Мій перший GUI-додаток Tkinter") # Встановлюємо заголовок вікна
# Встановлюємо початковий розмір вікна
root.geometry("450x300") # Задаємо розмір вікна: 450 пікселів ширина, 300 пікселів висота
root.config(bg="#f0f0f0") # Легкий сірий фон - встановлюємо колір фону вікна
# ---------------------------------
# 2. Функція для обробки натискання кнопки
# ---------------------------------
def update_label_content(): # Оголошуємо функцію, яка буде виконуватись при натисканні кнопки
"""
Отримує текст з поля вводу Entry, оновлює вміст Label
і змінює колір тексту Label на жовтий (використовуючи .config()).
"""
# Отримуємо текст із поля вводу
input_text = text_entry.get() # Метод .get() отримує введений користувачем текст з поля Entry
# Перевіряємо, чи введено текст, і встановлюємо відповідний вміст
if input_text: # Якщо користувач ввів текст (рядок не порожній)
new_text = f"Введено текст: '{input_text}'" # Формуємо рядок з введеним текстом
else: # Якщо поле вводу порожнє
new_text = "Кнопку натиснуто! Введіть текст вище." # Показуємо повідомлення за замовчуванням
# Оновлюємо лейбл, виконуючи завдання 2 (зміна тексту) та завдання 3 (зміна кольору)
main_label.config( # Метод .config() змінює властивості віджета
text=new_text, # Змінюємо текст лейбла на новий
fg="yellow" # Зміна кольору тексту на жовтий (fg означає foreground - передній план)
)
# ---------------------------------
# 3. Створення та розміщення фреймів (завдання Frame)
# ---------------------------------
# Фрейм 1: для лейбла
frame1 = tk.Frame(root, bg="#d9d9d9", padx=15, pady=15) # Створюємо контейнер Frame з сірим фоном та внутрішніми відступами
frame1.pack(pady=15, padx=15) # Розміщуємо фрейм у вікні з зовнішніми відступами
# Фрейм 2: для поля вводу та кнопки
frame2 = tk.Frame(root, bg="#cccccc", padx=15, pady=15) # Створюємо другий контейнер Frame з темнішим сірим фоном
frame2.pack(pady=10, padx=15) # Розміщуємо другий фрейм нижче першого
# ---------------------------------
# 4. Створення віджетів та розміщення у фреймах
# ---------------------------------
# Створення великого зеленого лейбла (завдання Label)
main_label = tk.Label( # Створюємо віджет Label для відображення тексту
frame1, # Розміщуємо лейбл всередині frame1
text="Привіт! Створи великий зелений лейбл.", # Початковий текст, який буде показано
font=("Arial", 20, "bold"), # Шрифт Arial, розмір 20, жирний стиль
fg="green", # Встановлюємо зелений колір тексту (fg - foreground)
bg="#d9d9d9" # Колір фону лейбла (такий самий, як у frame1)
)
main_label.pack() # Розміщуємо лейбл у його контейнері (frame1)
# Створення поля вводу (завдання Entry)
text_entry = tk.Entry( # Створюємо поле для введення тексту
frame2, # Розміщуємо поле вводу всередині frame2
width=35, # Встановлюємо ширину поля у символах
font=("Arial", 12), # Шрифт для введеного тексту: Arial, розмір 12
bd=2, # Товщина рамки навколо поля (border)
relief=tk.SUNKEN # Стиль рамки - втоплений (візуально заглиблений)
)
text_entry.pack(pady=10) # Розміщуємо поле вводу з вертикальними відступами 10 пікселів
# Створення кнопки (завдання Button)
action_button = tk.Button( # Створюємо віджет Button - кнопку для натискання
frame2, # Розміщуємо кнопку всередині frame2
text="Оновити лейбл", # Текст, який буде показано на кнопці
command=update_label_content, # Прив'язуємо функцію update_label_content до події натискання
font=("Arial", 12), # Шрифт тексту на кнопці: Arial, розмір 12
bg="#007bff", # Синій фон кнопки (background)
fg="white", # Білий текст на кнопці (foreground)
activebackground="#0056b3" # Колір фону кнопки при натисканні (темніший синій)
)
action_button.pack(pady=10, ipadx=10, ipady=5) # Розміщуємо кнопку з відступами: pady - зовнішні, ipadx/ipady - внутрішні
# ---------------------------------
# 5. Запуск головного циклу
# ---------------------------------
# Ця команда підтримує роботу програми, чекаючи на дії користувача
root.mainloop() # Запускаємо безкінечний цикл обробки подій - вікно залишається відкритим до його закриття# Імпортуємо бібліотеку tkinter та даємо їй коротке ім'я tk